.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.
-
AesCtr
is modeled after .NET'sAes
.
UseAesCtr.Create()
instead ofAes.Create()
. -
AesCmac
is modeled after .NET'sHMACSHA256
Usenew AesCmac(key)
instead ofnew HMACSHA256(key)
. -
AesSiv
is modeled after .NET'sAesGcm
.
Usenew AesSiv(key)
instead ofnew AesGcm(key)
. -
For AES-CMAC-PRF-128,
AesCmacPrf128
is modeled after .NET'sHKDF
.
UseAesCmacPrf128.DeriveKey()
instead ofHKDF.DeriveKey()
. -
For PBKDF2-AES-CMAC-PRF-128,
AesCmacPrf128
is modeled after .NET'sRfc2898DeriveBytes
.
UseAesCmacPrf128.Pbkdf2()
instead ofRfc2898DeriveBytes.Pbkdf2()
.
For further information, see the API documentation.