LibWeb: Set algorithm length for HMAC key generation

This assignment was missing from the spec, but has been fixed since
https://github.com/w3c/webcrypto/pull/394.

Also add relevant WPT tests.
This commit is contained in:
devgianlu 2024-12-26 20:09:58 +01:00 committed by Andreas Kling
commit f5d3d6a7d4
Notes: github-actions[bot] 2025-01-02 10:38:45 +00:00
4 changed files with 230 additions and 5 deletions

View file

@ -0,0 +1,198 @@
Harness status: OK
Found 192 tests
96 Pass
96 Fail
Pass Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-1, name: HMAC}, false, [sign])
Fail Success: generateKey({hash: SHA-1, name: HMAC}, true, [sign])
Fail Success: generateKey({hash: SHA-1, name: HMAC}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-1, name: HMAC}, false, [verify])
Fail Success: generateKey({hash: SHA-1, name: HMAC}, true, [verify])
Fail Success: generateKey({hash: SHA-1, name: HMAC}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-256, name: HMAC}, false, [sign])
Fail Success: generateKey({hash: SHA-256, name: HMAC}, true, [sign])
Fail Success: generateKey({hash: SHA-256, name: HMAC}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-256, name: HMAC}, false, [verify])
Fail Success: generateKey({hash: SHA-256, name: HMAC}, true, [verify])
Fail Success: generateKey({hash: SHA-256, name: HMAC}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-384, name: HMAC}, false, [sign])
Fail Success: generateKey({hash: SHA-384, name: HMAC}, true, [sign])
Fail Success: generateKey({hash: SHA-384, name: HMAC}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-384, name: HMAC}, false, [verify])
Fail Success: generateKey({hash: SHA-384, name: HMAC}, true, [verify])
Fail Success: generateKey({hash: SHA-384, name: HMAC}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-512, name: HMAC}, false, [sign])
Fail Success: generateKey({hash: SHA-512, name: HMAC}, true, [sign])
Fail Success: generateKey({hash: SHA-512, name: HMAC}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-512, name: HMAC}, false, [verify])
Fail Success: generateKey({hash: SHA-512, name: HMAC}, true, [verify])
Fail Success: generateKey({hash: SHA-512, name: HMAC}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: hmac}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: hmac}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: hmac}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: hmac}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: hmac}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: hmac}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: hmac}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: hmac}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-1, name: hmac}, false, [sign])
Fail Success: generateKey({hash: SHA-1, name: hmac}, true, [sign])
Fail Success: generateKey({hash: SHA-1, name: hmac}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-1, name: hmac}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-1, name: hmac}, false, [verify])
Fail Success: generateKey({hash: SHA-1, name: hmac}, true, [verify])
Fail Success: generateKey({hash: SHA-1, name: hmac}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-1, name: hmac}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-256, name: hmac}, false, [sign])
Fail Success: generateKey({hash: SHA-256, name: hmac}, true, [sign])
Fail Success: generateKey({hash: SHA-256, name: hmac}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-256, name: hmac}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-256, name: hmac}, false, [verify])
Fail Success: generateKey({hash: SHA-256, name: hmac}, true, [verify])
Fail Success: generateKey({hash: SHA-256, name: hmac}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-256, name: hmac}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-384, name: hmac}, false, [sign])
Fail Success: generateKey({hash: SHA-384, name: hmac}, true, [sign])
Fail Success: generateKey({hash: SHA-384, name: hmac}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-384, name: hmac}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-384, name: hmac}, false, [verify])
Fail Success: generateKey({hash: SHA-384, name: hmac}, true, [verify])
Fail Success: generateKey({hash: SHA-384, name: hmac}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-384, name: hmac}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-512, name: hmac}, false, [sign])
Fail Success: generateKey({hash: SHA-512, name: hmac}, true, [sign])
Fail Success: generateKey({hash: SHA-512, name: hmac}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-512, name: hmac}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-512, name: hmac}, false, [verify])
Fail Success: generateKey({hash: SHA-512, name: hmac}, true, [verify])
Fail Success: generateKey({hash: SHA-512, name: hmac}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-512, name: hmac}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-1, length: 160, name: Hmac}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-256, length: 256, name: Hmac}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-384, length: 384, name: Hmac}, true, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify, sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify, sign])
Pass Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, false, [sign, verify, sign, verify])
Pass Success: generateKey({hash: SHA-512, length: 512, name: Hmac}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-1, name: Hmac}, false, [sign])
Fail Success: generateKey({hash: SHA-1, name: Hmac}, true, [sign])
Fail Success: generateKey({hash: SHA-1, name: Hmac}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-1, name: Hmac}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-1, name: Hmac}, false, [verify])
Fail Success: generateKey({hash: SHA-1, name: Hmac}, true, [verify])
Fail Success: generateKey({hash: SHA-1, name: Hmac}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-1, name: Hmac}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-256, name: Hmac}, false, [sign])
Fail Success: generateKey({hash: SHA-256, name: Hmac}, true, [sign])
Fail Success: generateKey({hash: SHA-256, name: Hmac}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-256, name: Hmac}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-256, name: Hmac}, false, [verify])
Fail Success: generateKey({hash: SHA-256, name: Hmac}, true, [verify])
Fail Success: generateKey({hash: SHA-256, name: Hmac}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-256, name: Hmac}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-384, name: Hmac}, false, [sign])
Fail Success: generateKey({hash: SHA-384, name: Hmac}, true, [sign])
Fail Success: generateKey({hash: SHA-384, name: Hmac}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-384, name: Hmac}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-384, name: Hmac}, false, [verify])
Fail Success: generateKey({hash: SHA-384, name: Hmac}, true, [verify])
Fail Success: generateKey({hash: SHA-384, name: Hmac}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-384, name: Hmac}, true, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-512, name: Hmac}, false, [sign])
Fail Success: generateKey({hash: SHA-512, name: Hmac}, true, [sign])
Fail Success: generateKey({hash: SHA-512, name: Hmac}, false, [verify, sign])
Fail Success: generateKey({hash: SHA-512, name: Hmac}, true, [verify, sign])
Fail Success: generateKey({hash: SHA-512, name: Hmac}, false, [verify])
Fail Success: generateKey({hash: SHA-512, name: Hmac}, true, [verify])
Fail Success: generateKey({hash: SHA-512, name: Hmac}, false, [sign, verify, sign, verify])
Fail Success: generateKey({hash: SHA-512, name: Hmac}, true, [sign, verify, sign, verify])