WPT
wpt / WebCryptoAPI / generateKey / failures_bad_algorithm.https.any.worker.html
Spec: Web Cryptography ↗
Runs: Chrome 155.0.8039.0 (wpt@a4fcd77aa, 2026-09-03) | Firefox 157.0a1 (wpt@cc4d45aa0, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a9df8 (wpt@47d833bbc, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 360/360 | 360/360 | 360/360 | 360/360 | 360/360 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Bad algorithm: generateKey(AES, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey(AES, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({length: 128, name: AES-CFB}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: MD5, name: HMAC}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA-256, modulusLength: 2048, name: RSA, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({hash: SHA, modulusLength: 2048, name: RSA-PSS, publicExponent: {0: 1, 1: 0, 2: 1}}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, [sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, [deriveBits, sign, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, false, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Empty algorithm: generateKey({}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |