WPT
wpt / WebCryptoAPI / generateKey / failures_AES-KW.https.any.html
Spec: Web Cryptography ↗
Runs: Chrome 155.0.8039.0 (wpt@d0c38285b, 2026-09-03) | Firefox 157.0a1 (wpt@ed1909ed6, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a9df8 (wpt@0ea9f2aac, 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 | 234/236 | 216/236 | 176/236 | 216/236 | 236/236 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, wrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [unwrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, wrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [unwrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, wrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [unwrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, false, [wrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, true, [wrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, false, [unwrapKey, wrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, true, [unwrapKey, wrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, false, [unwrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, true, [unwrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, false, []) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, true, []) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, false, [wrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, true, [wrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, false, [unwrapKey, wrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, true, [unwrapKey, wrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, false, [unwrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, true, [unwrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, false, []) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, true, []) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, false, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-KW}, true, [wrapKey, unwrapKey, wrapKey, unwrapKey]) | PASS | FAIL | PASS | FAIL | PASS | — |
| Empty usages: generateKey({length: 128, name: AES-KW}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({length: 128, name: AES-KW}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({length: 192, name: AES-KW}, false, []) | FAIL | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({length: 192, name: AES-KW}, true, []) | FAIL | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({length: 256, name: AES-KW}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: generateKey({length: 256, name: AES-KW}, true, []) | PASS | PASS | PASS | PASS | PASS | — |