WPT
wpt / WebCryptoAPI / generateKey / successes_AES-GCM.https.any.worker.html
Spec: Web Cryptography ↗
Runs: Chrome 155.0.8039.0 (wpt@d0c38285b, 2026-09-03) | Firefox 157.0a1 (wpt@ed1909ed6, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a9df8 (wpt@0ea9f2aac, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 192/288 | 288/288 | 288/288 | 270/288 | 288/288 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) | FAIL | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | FAIL | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |
| Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) | PASS | PASS | PASS | FAIL | PASS | — |