ETAMP 1.1.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package ETAMP --version 1.1.2
NuGet\Install-Package ETAMP -Version 1.1.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ETAMP" Version="1.1.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ETAMP --version 1.1.2
#r "nuget: ETAMP, 1.1.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ETAMP as a Cake Addin
#addin nuget:?package=ETAMP&version=1.1.2

// Install ETAMP as a Cake Tool
#tool nuget:?package=ETAMP&version=1.1.2

ETAMP Protocol - Detailed Overview

Introduction to ETAMP

ETAMP (Encrypted Token and Message Protocol) is a sophisticated .NET library designed to create and validate encrypted tokens and messages. This protocol leverages the robustness of elliptic curve cryptography (ECC) standards, ensuring high security in digital communications. ETAMP is particularly valuable for its ability to generate signed tokens with user-defined payloads, making it an ideal solution for secure data transmission over networks. The tokens are verifiable for both integrity and authenticity, providing a secure means of data exchange.

Installation Process

  1. NuGet Package Installation: ETAMP can be seamlessly integrated into your .NET projects via the NuGet package manager. To install, simply execute the command:
    Install-Package ETAMP
    
    This command fetches and installs the latest version of the ETAMP library into your project.

Creating ETAMP Tokens

  1. Instantiation of the ETAMP Class: Begin by creating an instance of the Etamp class. This class may be configured with optional parameters such as ECDsa instances, elliptic curves, signature algorithms, and hash algorithms for customized cryptographic settings.
    var etamp = new Etamp();
    
  2. Defining a Payload: Define a custom payload class by inheriting from BasePayload. Add properties to this class as per your data requirements. For example, to create an order token:
    public class Order : BasePayload {
       public string ItemName { get; set; }
       public decimal Price { get; set; }
    }
    
  3. Token Generation: Generate a signed ETAMP token by calling the CreateETAMP method. This method requires parameters such as update type, payload instance, signature flag, and version.
    string token = etamp.CreateETAMP("order", new Order(), true, 1.0);
    
    To generate an unsigned token, use CreateETAMPWithoutSignature method.

Validating ETAMP Tokens

  1. Token Validation Setup: Instantiate a ValidateToken object by passing an instance of VerifyWrapper, which in turn encapsulates an EcdsaWrapper.
    var validator = new ValidateToken(new VerifyWrapper(new EcdsaWrapper()));
    
  2. Token Verification: Use the VerifyETAMP method to validate the token's authenticity.
    bool valid = validator.VerifyETAMP(token);
    
    For comprehensive validation including JWT claims and lifetime, utilize the FullVerify methods.

Cryptographic Components

  • The EcdsaWrapper factory class is used to create ECDsa instances for cryptographic operations.
  • Custom implementations of IVerifyWrapper handle the cryptographic verification process.
  • The architecture supports custom curves, keys, algorithms, and extensions for a tailored cryptographic solution.

Additional Features

  • ETAMP includes lightweight validation methods focusing exclusively on cryptographic checks.
  • It offers methods for verifying JWT properties like lifetime, issuer, and audience.
  • The flexible architecture of ETAMP allows for the integration of custom extensions.
  • The protocol supports integration with hardware security modules for enhanced security, making it suitable for high-security applications.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.2 61 5/31/2024
3.0.1 64 5/31/2024
3.0.0 64 5/31/2024
2.0.0 86 5/5/2024
1.4.0 86 3/23/2024
1.3.1 94 3/4/2024
1.3.0 86 3/2/2024
1.2.0 103 3/1/2024
1.1.5 108 2/8/2024
1.1.4 180 12/16/2023
1.1.3 139 12/6/2023
1.1.2 117 12/5/2023
1.1.1 92 12/3/2023
1.1.0 126 12/3/2023
1.0.2 124 11/28/2023
1.0.1 112 11/27/2023
1.0.0 105 11/26/2023