Skip to content

Latest commit

 

History

History
208 lines (198 loc) · 18.1 KB

algorithms.rst

File metadata and controls

208 lines (198 loc) · 18.1 KB

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