@@ -65,40 +65,40 @@ This module is designed to be extensible, you can bring outside-built implementa
6565
6666### KEM
6767
68- | Name | ID | Node.js | Deno | Bun | Cloudflare Workers | Browsers |
69- | -------------------------- | -------- | -------- | --------- | --------- | ------------------ | --------- |
70- | DHKEM(P-256, HKDF-SHA256) | ` 0x0010 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
71- | DHKEM(P-384, HKDF-SHA384) | ` 0x0011 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
72- | DHKEM(P-521, HKDF-SHA512) | ` 0x0012 ` | ✓ | | ✓ | ✓ | ✓ |
73- | DHKEM(X25519, HKDF-SHA256) | ` 0x0020 ` | ✓ | ✓ | | ✓ | ✓ |
74- | DHKEM(X448, HKDF-SHA512) | ` 0x0021 ` | ✓ | | | | |
75- | ML-KEM-512 | ` 0x0040 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
76- | ML-KEM-768 | ` 0x0041 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
77- | ML-KEM-1024 | ` 0x0042 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
78- | MLKEM768-P256 | ` 0x0050 ` | ✓[ ^ 24.7 ] | | | | |
79- | MLKEM768-X25519 | ` 0x647a ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
80- | MLKEM1024-P384 | ` 0x0051 ` | ✓[ ^ 24.7 ] | | | | |
68+ | Name | ID | Node.js | Deno | Bun | Cloudflare Workers | Browsers[ ^ status ] |
69+ | -------------------------- | -------- | -------- | --------- | --------- | ------------------ | ----------------- |
70+ | DHKEM(P-256, HKDF-SHA256) | ` 0x0010 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
71+ | DHKEM(P-384, HKDF-SHA384) | ` 0x0011 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
72+ | DHKEM(P-521, HKDF-SHA512) | ` 0x0012 ` | ✓ | | ✓ | ✓ | ✓ |
73+ | DHKEM(X25519, HKDF-SHA256) | ` 0x0020 ` | ✓ | ✓ | | ✓ | ✓ |
74+ | DHKEM(X448, HKDF-SHA512) | ` 0x0021 ` | ✓ | | | | |
75+ | ML-KEM-512 | ` 0x0040 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
76+ | ML-KEM-768 | ` 0x0041 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
77+ | ML-KEM-1024 | ` 0x0042 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
78+ | MLKEM768-P256 | ` 0x0050 ` | ✓[ ^ 24.7 ] | | | | |
79+ | MLKEM768-X25519 | ` 0x647a ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
80+ | MLKEM1024-P384 | ` 0x0051 ` | ✓[ ^ 24.7 ] | | | | |
8181
8282### KDF
8383
84- | Name | ID | Node.js | Deno | Bun | Cloudflare Workers | Browsers |
85- | ------------- | -------- | --------- | --------- | --------- | ------------------ | --------- |
86- | HKDF-SHA256 | ` 0x0001 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
87- | HKDF-SHA384 | ` 0x0002 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
88- | HKDF-SHA512 | ` 0x0003 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
89- | SHAKE128 | ` 0x0010 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
90- | SHAKE256 | ` 0x0011 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
91- | TurboSHAKE128 | ` 0x0012 ` | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
92- | TurboSHAKE256 | ` 0x0013 ` | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
84+ | Name | ID | Node.js | Deno | Bun | Cloudflare Workers | Browsers[ ^ status ] |
85+ | ------------- | -------- | --------- | --------- | --------- | ------------------ | ----------------- |
86+ | HKDF-SHA256 | ` 0x0001 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
87+ | HKDF-SHA384 | ` 0x0002 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
88+ | HKDF-SHA512 | ` 0x0003 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
89+ | SHAKE128 | ` 0x0010 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
90+ | SHAKE256 | ` 0x0011 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
91+ | TurboSHAKE128 | ` 0x0012 ` | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
92+ | TurboSHAKE256 | ` 0x0013 ` | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
9393
9494### AEAD
9595
96- | Name | ID | Node.js | Deno | Bun | Cloudflare Workers | Browsers |
97- | ---------------- | -------- | -------- | --------- | --------- | ------------------ | --------- |
98- | AES-128-GCM | ` 0x0001 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
99- | AES-256-GCM | ` 0x0002 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
100- | ChaCha20Poly1305 | ` 0x0003 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
101- | Export-only | ` 0xffff ` | ✓ | ✓ | ✓ | ✓ | ✓ |
96+ | Name | ID | Node.js | Deno | Bun | Cloudflare Workers | Browsers[ ^ status ] |
97+ | ---------------- | -------- | -------- | --------- | --------- | ------------------ | ----------------- |
98+ | AES-128-GCM | ` 0x0001 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
99+ | AES-256-GCM | ` 0x0002 ` | ✓ | ✓ | ✓ | ✓ | ✓ |
100+ | ChaCha20Poly1305 | ` 0x0003 ` | ✓[ ^ 24.7 ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] | ✓[ ^ noble ] |
101+ | Export-only | ` 0xffff ` | ✓ | ✓ | ✓ | ✓ | ✓ |
102102
103103## Supported Versions
104104
@@ -126,3 +126,5 @@ The algorithm implementations in `@panva/hpke` have been tested using test vecto
126126[ ^ 24.7 ] : Available in Node.js versions >= 24.7.0
127127
128128[ ^ noble ] : Available through extensibility
129+
130+ [ ^ status ] : Test browser compatibility live at https://panva.github.io/hpke/
0 commit comments