.NET Standard 2.0 implementation of the following AES modes that are not included in .NET:
- AES-CTR
Defined by NIST SP 800-38A. - AES-CMAC
Defined by NIST SP 800-38B and RFC 4493. - SIV-AES
Defined by RFC 5297.
This is often referred to as AES-SIV. - AES-CMAC-PRF-128
Defined by RFC 4615.
Registered by IANA as PRF_AES128_CMAC. - PBKDF2-AES-CMAC-PRF-128
Defined by RFC 8018 in combination with RFC 4615.
The implementation is for AnyCPU, and works on all platforms.
The released NuGet package and the .NET assemblies contained therein have the following properties:
All public classes are in the Dorssel.Security.Cryptography namespace.
-
AesCtris modeled after .NET'sAes.
UseAesCtr.Create()instead ofAes.Create(). -
AesCmacis modeled after .NET'sHMACSHA256
Usenew AesCmac(key)instead ofnew HMACSHA256(key). -
AesSivis modeled after .NET'sAesGcm.
Usenew AesSiv(key)instead ofnew AesGcm(key). -
For AES-CMAC-PRF-128,
AesCmacPrf128is modeled after .NET'sHKDF.
UseAesCmacPrf128.DeriveKey()instead ofHKDF.DeriveKey(). -
For PBKDF2-AES-CMAC-PRF-128,
AesCmacPrf128is modeled after .NET'sRfc2898DeriveBytes.
UseAesCmacPrf128.Pbkdf2()instead ofRfc2898DeriveBytes.Pbkdf2().
For further information, see the API documentation.