WPT
wpt / WebCryptoAPI / generateKey / failures_AES-OCB.tentative.https.any.worker.html
Spec: Web Cryptography ↗
Runs: Chrome 155.0.8042.0 (wpt@0588f3896, 2026-09-04) | Firefox 157.0a1 (wpt@0588f3896, 2026-09-04) | Safari 251 preview (wpt@e7122b73f, 2026-09-04) | Ladybird 1.0-b1af2 (wpt@0588f3896, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 0/686 | 204/686 | 0/686 | 618/686 | 686/686 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [wrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, wrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [unwrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 128, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [wrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, wrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [unwrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 192, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, encapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, encapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, decapsulateKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, encrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decrypt, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [wrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, wrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [unwrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({length: 256, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, decapsulateBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 64, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 127, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 129, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 255, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 257, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 512, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [wrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [wrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [unwrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [unwrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: 4294967424, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [unwrapKey, decrypt, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [wrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [unwrapKey, encrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [wrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [unwrapKey, decrypt]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [wrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [wrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [unwrapKey, wrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [unwrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [unwrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Bad algorithm property: generateKey({length: -4294967168, name: AES-OCB}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | FAIL | FAIL | FAIL | PASS | — |
| Empty usages: generateKey({length: 128, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({length: 128, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({length: 192, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({length: 192, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({length: 256, name: AES-OCB}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({length: 256, name: AES-OCB}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |