WPT
wpt / WebCryptoAPI / import_export / ec_importKey_failures_ECDH.https.any.worker.html
Spec: Web Cryptography ↗
Runs: Chrome 155.0.8039.0 (wpt@47d833bbc, 2026-09-03) | Firefox 157.0a1 (wpt@47d833bbc, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-3d220 (wpt@476394464, 2026-09-03) | 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 | 908/908 | 905/908 | 620/908 | 908/908 | 908/908 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-256}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-384}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-384}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(spki, {name: ECDH, namedCurve: P-521}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(raw, {name: ECDH, namedCurve: P-521}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decrypt]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, wrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, encapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateKey]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Bad usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits, decapsulateBits]) | PASS | PASS | FAIL | PASS | PASS | — |
| Empty usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Empty usages: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(spki, {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(spki, {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(raw, {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(raw, {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(spki, {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(spki, {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(raw, {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(raw, {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(spki, {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(spki, {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(raw, {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(raw, {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(pkcs8, {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Bad key length: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'x' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'kty' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing JWK 'crv' parameter: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Missing algorithm name: importKey(pkcs8, {}, true, deriveKey) | PASS | PASS | PASS | PASS | PASS | — |
| Missing algorithm name: importKey(pkcs8, {}, false, deriveKey) | PASS | PASS | PASS | PASS | PASS | — |
| Missing algorithm name: importKey(pkcs8, {}, true, deriveBits) | PASS | PASS | PASS | PASS | PASS | — |
| Missing algorithm name: importKey(pkcs8, {}, false, deriveBits) | PASS | PASS | PASS | PASS | PASS | — |
| Missing algorithm name: importKey(jwk(private), {}, true, deriveKey) | PASS | PASS | PASS | PASS | PASS | — |
| Missing algorithm name: importKey(jwk(private), {}, false, deriveKey) | PASS | PASS | PASS | PASS | PASS | — |
| Missing algorithm name: importKey(jwk(private), {}, true, deriveBits) | PASS | PASS | PASS | PASS | PASS | — |
| Missing algorithm name: importKey(jwk(private), {}, false, deriveBits) | PASS | PASS | PASS | PASS | PASS | — |
| Invalid 'kty' field: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Invalid 'kty' field: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Invalid 'kty' field: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Import from a non-extractable: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Import from a non-extractable: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Import from a non-extractable: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Invalid 'use' field: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits]) | PASS | FAIL | PASS | PASS | PASS | — |
| Invalid 'use' field: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits]) | PASS | FAIL | PASS | PASS | PASS | — |
| Invalid 'use' field: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits]) | PASS | FAIL | PASS | PASS | PASS | — |
| Invalid 'crv' field: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Invalid 'crv' field: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Invalid 'crv' field: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |