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

-65534: A128CTR, # AES-CTR w/ 128-bit key (Deprecated) -65533: A192CTR, # AES-CTR w/ 192-bit key (Deprecated) -65532: A256CTR, # AES-CTR w/ 256-bit key (Deprecated) -65531: A128CBC, # AES-CBC w/ 128-bit key (Deprecated) -65530: A192CBC, # AES-CBC w/ 192-bit key (Deprecated) -65529: A256CBC, # AES-CBC w/ 256-bit key (Deprecated) -65529: A256CBC, # AES-CBC w/ 256-bit key (Deprecated) -36: ES512, # ECDSA w/ SHA-512 (Deprecated) -35: ES384, # ECDSA w/ SHA-384 (Deprecated) -8: EdDSA, # EdDSA (Deprecated) -7: ES256, # ECDSA w/ SHA-256 (Deprecated)

Name

Status

Value

Description

RS1

➖

-65535

RSASSA-PKCS1-v1_5 using SHA-1

A128CTR

✅

-65534

AES-CTR w/ 128-bit key

A192CTR

✅

-65533

AES-CTR w/ 192-bit key

A256CTR

✅

-65532

AES-CTR w/ 256-bit key

A128CBC

✅

-65531

AES-CBC w/ 128-bit key

A192CBC

✅

-65530

AES-CBC w/ 192-bit key

A256CBC

✅

-65529

AES-CBC w/ 256-bit key

ESB512

-268

ECDSA using BrainpoolP512r1 curve and SHA-512

ESB384

-267

ECDSA using BrainpoolP384r1 curve and SHA-384

ESB320

-266

ECDSA using BrainpoolP320r1 curve and SHA-384

ESB256

-265

ECDSA using BrainpoolP256r1 curve and SHA-256

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

Ed448

✅

-53

EdDSA using Ed448 curve

ESP512

✅

-52

ECDSA using P-521 curve and SHA-512

ESP384

✅

-51

ECDSA using P-384 curve and SHA-384

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

Ed25519

✅

-19 | EdDSA using Ed25519 curve

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

ESP256

✅

-9

ECDSA using P-256 curve 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