IANA Registry for COSE lists many cryptographic algorithms for MAC, signing, and encryption. This section shows the algorithms which this library currently supports.
- ✅ : Supported.
- ➖ : No plan to support.
Name | Status | Value | Description |
---|---|---|---|
OKP | ✅ | | 1 | | Octet Key Pair |
EC2 | ✅ | | 2 | | Elliptic Curve Keys w/ x- and y-coordinate pair |
RSA | ✅ | | 3 | | RSA Key |
Symmetric | ✅ | | 4 | | Symmetric Keys |
HSS-LMS | 5 | Public key for HSS/LMS hash-based digital signature | |
WalnutDSA | 6 | WalnutDSA public key |
Name | Status | Value | Description |
---|---|---|---|
RS1 | ➖ | | -65535| | RSASSA-PKCS1-v1_5 using SHA-1 |
WalnutDSA | -260 | WalnutDSA signature | |
RS512 | ✅ | | -259 | | RSASSA-PKCS1-v1_5 using SHA-512 |
RS384 | ✅ | | -258 | | RSASSA-PKCS1-v1_5 using SHA-384 |
RS256 | ✅ | | -257 | | RSASSA-PKCS1-v1_5 using SHA-256 |
ES256K | ✅ | | -47 | | ECDSA using secp256k1 curve and SHA-256 |
HSS-LMS | -46 | HSS/LMS hash-based digital signature | |
SHAKE256 | -45 | SHAKE-256 512-bit Hash Value | |
SHA-512 | -44 | SHA-2 512-bit Hash | |
SHA-384 | -43 | SHA-2 384-bit Hash | |
RSAES-OAEP w/ SHA-512 | -42 | RSAES-OAEP w/ SHA-512 | |
RSAES-OAEP w/ SHA-256 | -41 | RSAES-OAEP w/ SHA-256 | |
RSAES-OAEP w/ RFC 8017 default parameters |
-40 | RSAES-OAEP w/ SHA-1 | |
PS512 | ✅ | | -39 | | RSASSA-PSS w/ SHA-512 |
PS384 | ✅ | | -38 | | RSASSA-PSS w/ SHA-384 |
PS256 | ✅ | | -37 | | RSASSA-PSS w/ SHA-256 |
ES512 | ✅ | | -36 | | ECDSA w/ SHA-512 |
ES384 | ✅ | | -35 | | ECDSA w/ SHA-384 |
ECDH-SS + A256KW | ✅ | | -34 | | ECDH SS w/ Concat KDF and AES Key Wrap | w/ 256-bit key |
ECDH-SS + A192KW | ✅ | | -33 | | ECDH SS w/ Concat KDF and AES Key Wrap | w/ 192-bit key |
ECDH-SS + A128KW | ✅ | | -32 | | ECDH SS w/ Concat KDF and AES Key Wrap | w/ 128-bit key |
ECDH-ES + A256KW | ✅ | | -31 | | ECDH ES w/ Concat KDF and AES Key Wrap | w/ 256-bit key |
ECDH-ES + A192KW | ✅ | | -30 | | ECDH ES w/ Concat KDF and AES Key Wrap | w/ 192-bit key |
ECDH-ES + A128KW | ✅ | | -29 | | ECDH ES w/ Concat KDF and AES Key Wrap | w/ 128-bit key |
ECDH-SS + HKDF-512 | ✅ | | -28 | | ECDH SS w/ HKDF - generate key directly |
ECDH-SS + HKDF-256 | ✅ | | -27 | | ECDH SS w/ HKDF - generate key directly |
ECDH-ES + HKDF-512 | ✅ | | -26 | | ECDH ES w/ HKDF - generate key directly |
ECDH-ES + HKDF-256 | ✅ | | -25 | | ECDH ES w/ HKDF - generate key directly |
SHAKE128 | -18 | SHAKE-128 256-bit Hash Value | |
SHA-512/256 | -17 | SHA-2 512-bit Hash truncated to 256-bits | |
SHA-256 | -16 | SHA-2 256-bit Hash | |
SHA-256/64 | -15 | SHA-2 256-bit Hash truncated to 64-bits | |
SHA-1 | ➖ | | -14 | | SHA-1 Hash |
direct+HKDF-AES-256 | -13 | Shared secret w/ AES-MAC 256-bit key | |
direct+HKDF-AES-128 | -12 | Shared secret w/ AES-MAC 128-bit key | |
direct+HKDF-SHA-512 | ✅ | | -11 | | Shared secret w/ HKDF and SHA-512 |
direct+HKDF-SHA-256 | ✅ | | -10 | | Shared secret w/ HKDF and SHA-256 |
EdDSA | ✅ | | -8 | | EdDSA |
ES256 | ✅ | | -7 | | ECDSA w/ SHA-256 |
direct | ✅ | | -6 | | Direct use of CEK |
A256KW | ✅ | | -5 | | AES Key Wrap w/ 256-bit key |
A192KW | ✅ | | -4 | | AES Key Wrap w/ 192-bit key |
A128KW | ✅ | | -3 | | AES Key Wrap w/ 128-bit key |
A128GCM | ✅ | | 1 | | AES-GCM mode w/ 128-bit key, 128-bit tag |
A192GCM | ✅ | | 2 | | AES-GCM mode w/ 192-bit key, 128-bit tag |
A256GCM | ✅ | | 3 | | AES-GCM mode w/ 256-bit key, 128-bit tag |
HMAC 256/64 | ✅ | | 4 | | HMAC w/ SHA-256 truncated to 64 bits |
HMAC 256/256 ("HS256" can also be used.) |
✅ | | 5 | | HMAC w/ SHA-256 |
HMAC 384/384 ("HS384" can also be used.) |
✅ | | 6 | | HMAC w/ SHA-384 |
HMAC 512/512 ("HS512" can also be used.) |
✅ | | 7 | | HMAC w/ SHA-512 |
AES-CCM-16-64-128 | ✅ | | 10 | | AES-CCM mode 128-bit key, 64-bit tag, | 13-byte nonce |
AES-CCM-16-64-256 | ✅ | | 11 | | AES-CCM mode 256-bit key, 64-bit tag, | 13-byte nonce |
AES-CCM-64-64-128 | ✅ | | 12 | | AES-CCM mode 128-bit key, 64-bit tag, | 7-byte nonce |
AES-CCM-64-64-256 | ✅ | | 13 | | AES-CCM mode 256-bit key, 64-bit tag, | 7-byte nonce |
AES-MAC 128/64 | ➖ | | 14 | | AES-MAC 128-bit key, 64-bit tag |
AES-MAC 256/64 | ➖ | | 15 | | AES-MAC 256-bit key, 64-bit tag |
ChaCha20/Poly1305 | ✅ | | 24 | | ChaCha20/Poly1305 w/ 256-bit key, 128-bit tag |
AES-MAC 128/128 | ➖ | | 25 | | AES-MAC 128-bit key, 128-bit tag |
AES-MAC 128/128 | ➖ | | 26 | | AES-MAC 256-bit key, 128-bit tag |
AES-CCM-16-128-128 | ✅ | | 30 | | AES-CCM mode 128-bit key, 128-bit tag, | 13-byte nonce |
AES-CCM-16-128-256 | ✅ | | 31 | | AES-CCM mode 256-bit key, 128-bit tag, | 13-byte nonce |
AES-CCM-64-128-128 | ✅ | | 32 | | AES-CCM mode 128-bit key, 128-bit tag, | 7-byte nonce |
AES-CCM-64-128-256 | ✅ | | 33 | | AES-CCM mode 256-bit key, 128-bit tag, | 7-byte nonce |
Name | Status | Value | Description |
---|---|---|---|
P-256 | ✅ | | 1 | | NIST P-256 also known as secp256r1 |
P-384 | ✅ | | 2 | | NIST P-384 also known as secp384r1 |
P-521 | ✅ | | 3 | | NIST P-521 also known as secp521r1 |
X25519 | ✅ | | 4 | | X25519 for use w/ ECDH only |
X448 | ✅ | | 5 | | X448 for use w/ ECDH only |
Ed25519 | ✅ | | 6 | | Ed25519 for use w/ EdDSA only |
Ed448 | ✅ | | 7 | | Ed448 for use w/ EdDSA only |
secp256k1 | ✅ | | 8 | | SECG secp256k1 curve |