WPT
wpt / WebCryptoAPI / import_export / ec_importKey.https.any.worker.html
Spec: Web Cryptography ↗
Runs: Chrome 155.0.8042.0 (wpt@4eb09bcd9, 2026-09-04) | Firefox 157.0a1 (wpt@c3fcbf4ba, 2026-09-04) | Safari 251 preview (wpt@e7122b73f, 2026-09-04) | Ladybird 1.0-52f0f (wpt@a1ecd0c09, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 264/264 | 246/264 | 222/264 | 198/264 | 264/264 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(65), {name: ECDSA, namedCurve: P-256}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify]) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(65), {name: ECDSA, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-256 bits (raw, buffer(65), {name: ECDSA, namedCurve: P-256}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify, verify]) | PASS | PASS | PRECONDITION_FAILED | FAIL | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, true, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, true, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(65), {name: ECDSA, namedCurve: P-256}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, false, [verify]) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(65), {name: ECDSA, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, false, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-256 bits (raw, buffer(65), {name: ECDSA, namedCurve: P-256}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, false, [verify, verify]) | PASS | PASS | PRECONDITION_FAILED | FAIL | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, false, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, false, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| PKCS8 private-only: P-256 bits (pkcs8, buffer(67), {name: ECDSA, namedCurve: P-256}, true, [sign]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-256 bits (pkcs8, buffer(67), {name: ECDSA, namedCurve: P-256}, true, [sign, sign]) | PASS | FAIL | FAIL | FAIL | PASS | — |
| Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(97), {name: ECDSA, namedCurve: P-384}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify]) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(97), {name: ECDSA, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-384 bits (raw, buffer(97), {name: ECDSA, namedCurve: P-384}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify, verify]) | PASS | PASS | PRECONDITION_FAILED | FAIL | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, true, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, true, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(97), {name: ECDSA, namedCurve: P-384}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, false, [verify]) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(97), {name: ECDSA, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, false, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-384 bits (raw, buffer(97), {name: ECDSA, namedCurve: P-384}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, false, [verify, verify]) | PASS | PASS | PRECONDITION_FAILED | FAIL | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, false, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, false, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| PKCS8 private-only: P-384 bits (pkcs8, buffer(80), {name: ECDSA, namedCurve: P-384}, true, [sign]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-384 bits (pkcs8, buffer(80), {name: ECDSA, namedCurve: P-384}, true, [sign, sign]) | PASS | FAIL | FAIL | FAIL | PASS | — |
| Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify]) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify, verify]) | PASS | PASS | PRECONDITION_FAILED | FAIL | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, [verify]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify]) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, [verify, verify]) | PASS | PASS | PASS | FAIL | PASS | — |
| Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify, verify]) | PASS | PASS | PRECONDITION_FAILED | FAIL | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign, sign]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| PKCS8 private-only: P-521 bits (pkcs8, buffer(98), {name: ECDSA, namedCurve: P-521}, true, [sign]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-521 bits (pkcs8, buffer(98), {name: ECDSA, namedCurve: P-521}, true, [sign, sign]) | PASS | FAIL | FAIL | FAIL | PASS | — |
| Good parameters: P-256 bits (spki, buffer(91), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(65), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(91), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(65), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| PKCS8 private-only: P-256 bits (pkcs8, buffer(67), {name: ECDH, namedCurve: P-256}, true, [deriveKey]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-256 bits (pkcs8, buffer(67), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-256 bits (pkcs8, buffer(67), {name: ECDH, namedCurve: P-256}, true, [deriveBits]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-256 bits (pkcs8, buffer(67), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | FAIL | FAIL | FAIL | PASS | — |
| Good parameters: P-384 bits (spki, buffer(120), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(97), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(120), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(97), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| PKCS8 private-only: P-384 bits (pkcs8, buffer(80), {name: ECDH, namedCurve: P-384}, true, [deriveKey]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-384 bits (pkcs8, buffer(80), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-384 bits (pkcs8, buffer(80), {name: ECDH, namedCurve: P-384}, true, [deriveBits]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-384 bits (pkcs8, buffer(80), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | FAIL | FAIL | FAIL | PASS | — |
| Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(133), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(133), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PRECONDITION_FAILED | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits]) | PASS | PASS | PASS | PASS | PASS | — |
| Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | PASS | PASS | FAIL | PASS | — |
| Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, []) | PASS | PASS | PASS | PASS | PASS | — |
| PKCS8 private-only: P-521 bits (pkcs8, buffer(98), {name: ECDH, namedCurve: P-521}, true, [deriveKey]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-521 bits (pkcs8, buffer(98), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-521 bits (pkcs8, buffer(98), {name: ECDH, namedCurve: P-521}, true, [deriveBits]) | PASS | FAIL | FAIL | PASS | PASS | — |
| PKCS8 private-only: P-521 bits (pkcs8, buffer(98), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits]) | PASS | FAIL | FAIL | FAIL | PASS | — |