LibWeb: Handle raw-secret key formats in wrap_key

Refresh the imported wrapKey_unwrapKey WPT to the current upstream
version and treat the raw-secret and other raw* formats like raw
when wrap_key() and unwrap_key() serialize wrapped key bytes.

The updated test covers ChaCha20-Poly1305 wrapping with the
raw-secret format. Accepting the full set of byte-oriented raw
formats lets those keys round-trip through wrapKey and unwrapKey.
This commit is contained in:
Andreas Kling
2026-03-29 11:38:28 +02:00
committed by Andreas Kling
parent 3726df5a9e
commit 52c46483d1
Notes: github-actions[bot] 2026-03-29 11:23:14 +00:00
4 changed files with 162 additions and 84 deletions

View File

@@ -1,8 +1,8 @@
Harness status: OK
Found 357 tests
Found 472 tests
357 Pass
472 Pass
Pass setup
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and RSA-OAEP
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and RSA-OAEP
@@ -77,6 +77,11 @@ Pass Can wrap and unwrap HMAC keys as non-extractable using raw and RSA-OAEP
Pass Can wrap and unwrap HMAC keys using jwk and RSA-OAEP
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and RSA-OAEP
Pass Can unwrap HMAC non-extractable keys using jwk and RSA-OAEP
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using raw-secret and RSA-OAEP
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using raw-secret and RSA-OAEP
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using jwk and RSA-OAEP
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using jwk and RSA-OAEP
Pass Can unwrap ChaCha20-Poly1305 non-extractable keys using jwk and RSA-OAEP
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-CTR
@@ -165,6 +170,11 @@ Pass Can wrap and unwrap HMAC keys as non-extractable using raw and AES-CTR
Pass Can wrap and unwrap HMAC keys using jwk and AES-CTR
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and AES-CTR
Pass Can unwrap HMAC non-extractable keys using jwk and AES-CTR
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using raw-secret and AES-CTR
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using raw-secret and AES-CTR
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using jwk and AES-CTR
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using jwk and AES-CTR
Pass Can unwrap ChaCha20-Poly1305 non-extractable keys using jwk and AES-CTR
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-CBC
@@ -253,6 +263,11 @@ Pass Can wrap and unwrap HMAC keys as non-extractable using raw and AES-CBC
Pass Can wrap and unwrap HMAC keys using jwk and AES-CBC
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and AES-CBC
Pass Can unwrap HMAC non-extractable keys using jwk and AES-CBC
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using raw-secret and AES-CBC
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using raw-secret and AES-CBC
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using jwk and AES-CBC
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using jwk and AES-CBC
Pass Can unwrap ChaCha20-Poly1305 non-extractable keys using jwk and AES-CBC
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-GCM
@@ -341,6 +356,11 @@ Pass Can wrap and unwrap HMAC keys as non-extractable using raw and AES-GCM
Pass Can wrap and unwrap HMAC keys using jwk and AES-GCM
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and AES-GCM
Pass Can unwrap HMAC non-extractable keys using jwk and AES-GCM
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using raw-secret and AES-GCM
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using raw-secret and AES-GCM
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using jwk and AES-GCM
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using jwk and AES-GCM
Pass Can unwrap ChaCha20-Poly1305 non-extractable keys using jwk and AES-GCM
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-KW
Pass Can wrap and unwrap RSA-PSS public key keys using jwk and AES-KW
Pass Can wrap and unwrap RSA-OAEP public key keys using jwk and AES-KW
@@ -359,4 +379,99 @@ Pass Can wrap and unwrap AES-GCM keys as non-extractable using raw and AES-KW
Pass Can wrap and unwrap AES-KW keys using raw and AES-KW
Pass Can wrap and unwrap AES-KW keys as non-extractable using raw and AES-KW
Pass Can wrap and unwrap HMAC keys using raw and AES-KW
Pass Can wrap and unwrap HMAC keys as non-extractable using raw and AES-KW
Pass Can wrap and unwrap HMAC keys as non-extractable using raw and AES-KW
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using raw-secret and AES-KW
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using raw-secret and AES-KW
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap RSASSA-PKCS1-v1_5 private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-PSS public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-PSS public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-PSS private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-PSS private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-PSS private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap RSA-PSS private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-OAEP public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-OAEP public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-OAEP private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-OAEP private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-OAEP private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap RSA-OAEP private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap RSA-OAEP private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDSA public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDSA public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDSA private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDSA private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDSA private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDSA private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap ECDSA private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDH public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDH public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDH private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDH private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDH private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap ECDH private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap ECDH private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed25519 public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed25519 public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed25519 private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed25519 private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed25519 private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed25519 private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap Ed25519 private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed448 public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed448 public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed448 private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed448 private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed448 private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap Ed448 private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap Ed448 private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap X25519 public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap X25519 public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap X25519 private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap X25519 private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap X25519 private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap X25519 private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap X25519 private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap X448 public key keys using spki and ChaCha20-Poly1305
Pass Can wrap and unwrap X448 public key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap X448 private key keys using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap X448 private key keys as non-extractable using pkcs8 and ChaCha20-Poly1305
Pass Can wrap and unwrap X448 private key keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap X448 private key keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap X448 private key non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-CTR keys using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-CTR keys as non-extractable using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-CTR keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-CTR keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap AES-CTR non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-CBC keys using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-CBC keys as non-extractable using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-CBC keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-CBC keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap AES-CBC non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-GCM keys using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-GCM keys as non-extractable using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-GCM keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-GCM keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap AES-GCM non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-KW keys using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-KW keys as non-extractable using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-KW keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap AES-KW keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap AES-KW non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap HMAC keys using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap HMAC keys as non-extractable using raw and ChaCha20-Poly1305
Pass Can wrap and unwrap HMAC keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap HMAC keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap HMAC non-extractable keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using raw-secret and ChaCha20-Poly1305
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using raw-secret and ChaCha20-Poly1305
Pass Can wrap and unwrap ChaCha20-Poly1305 keys using jwk and ChaCha20-Poly1305
Pass Can wrap and unwrap ChaCha20-Poly1305 keys as non-extractable using jwk and ChaCha20-Poly1305
Pass Can unwrap ChaCha20-Poly1305 non-extractable keys using jwk and ChaCha20-Poly1305