Supported COSE Algorithms¶
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.
COSE Key Types¶
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 |
COSE Algorithms¶
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
|
COSE Elliptic Curves¶
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 |