WPT
wpt / WebCryptoAPI / generateKey / failures_ML-KEM.tentative.https.any.html
Spec: Web Cryptography ↗
Runs: Chrome 155.0.8041.0 (wpt@2c385f65e, 2026-09-04) | Firefox 157.0a1 (wpt@2c385f65e, 2026-09-04) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a7825 (wpt@2c385f65e, 2026-09-04) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | 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/684 | 624/684 | 0/684 | 684/684 | 684/684 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Bad usages: generateKey(ML-KEM-512, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [encapsulateKey, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-512, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [encapsulateKey, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-512}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [encapsulateKey, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-768, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [encapsulateKey, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-768}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [encapsulateKey, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey(ML-KEM-1024, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateBits, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, encrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decrypt]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateBits, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decrypt]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [sign]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateBits, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, sign]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [verify]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateBits, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, verify]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [wrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateBits, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, wrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [unwrapKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateBits, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, unwrapKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [deriveKey]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateBits, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveKey]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [deriveBits]) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateBits, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, encapsulateBits, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [encapsulateKey, decapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Bad usages: generateKey({name: ML-KEM-1024}, true, [decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, decapsulateBits, decapsulateKey, decapsulateBits, decapsulateKey, encapsulateBits, encapsulateKey, deriveBits]) | FAIL | PASS | FAIL | PASS | PASS | — |
| Empty usages: generateKey(ML-KEM-512, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey(ML-KEM-512, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({name: ML-KEM-512}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({name: ML-KEM-512}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey(ML-KEM-768, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey(ML-KEM-768, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({name: ML-KEM-768}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({name: ML-KEM-768}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey(ML-KEM-1024, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey(ML-KEM-1024, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({name: ML-KEM-1024}, false, []) | FAIL | FAIL | FAIL | PASS | PASS | — |
| Empty usages: generateKey({name: ML-KEM-1024}, true, []) | FAIL | FAIL | FAIL | PASS | PASS | — |