WPT
wpt / WebCryptoAPI / generateKey / failures_HMAC.https.any.html
Spec: Web Cryptography ↗
Runs: Chrome 155.0.8039.0 (wpt@a4fcd77aa, 2026-09-03) | Firefox 157.0a1 (wpt@cc4d45aa0, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a9df8 (wpt@47d833bbc, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 436/436 | 416/436 | 276/436 | 416/436 | 436/436 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, [sign, verify, sign, verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, [sign, verify, sign, verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, [sign, verify, sign, verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, [sign, verify, sign, verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-1, name: HMAC}, true, [sign, verify, sign, verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-256, name: HMAC}, true, [sign, verify, sign, verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-384, name: HMAC}, true, [sign, verify, sign, verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, sign, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({hash: SHA-512, name: HMAC}, true, [sign, verify, sign, verify, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, false, [sign]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, true, [sign]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, false, [verify, sign]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, true, [verify, sign]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, false, [verify]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, true, [verify]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, false, []) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, true, []) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, false, [sign, verify, sign, verify]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: 4294967424, name: HMAC}, true, [sign, verify, sign, verify]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, false, [sign]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, true, [sign]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, false, [verify, sign]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, true, [verify, sign]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, false, [verify]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, true, [verify]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, false, []) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, true, []) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, false, [sign, verify, sign, verify]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({hash: SHA-256, length: -4294967168, name: HMAC}, true, [sign, verify, sign, verify]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-1, length: 160, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-256, length: 256, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-384, length: 384, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-512, length: 512, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-1, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-1, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-256, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-256, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-384, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-384, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-512, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({hash: SHA-512, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |