The jco-webkit conformance target (Playwright WebKit on macOS — Apple's crypto backend, the Safari proxy) diverges from the package contract in four classes, declared as expected failures (tracked debt) mirroring the Deno (#351) and Firefox (#356) ledgers, plus one capability gap:
Capability: 8192-bit RSA public keys refused at import. The whole rsassa-pkcs1-v15-sha256-8192 row fails at importKey, exactly Deno's gap — declared as the existing gated rsa-verify-8192 capability (the !rsa-verify-8192 decline case proves the refusal), not ledgered case-by-case.
RSASSA-PKCS1-v1_5: unreduced signatures accepted (4 cases: tc244/tc245 upstream-invalid SignatureMalleability vectors across 2048/3072/4096 rows). WebKit's verify accepts s ≥ n. The package pins rejection; every other target rejects. Signature verification is crypto, so this is not host-fixable under the portability ladder (no re-implementation of verify host-side) — platform bug to report upstream.
Ed25519: the empty message fails verification (4 cases: tc1, tc71, tc80, tc102 — upstream-valid vectors, including the RFC 8032 Test 1 known answer). WebKit rejects verify with an empty message where every other platform accepts.
Ed25519: signing is not the RFC 8032 deterministic form (probe/ed25519-private-format-imports): signing the RFC 8032 TEST 3 message with the TEST 3 seed imported via PKCS#8 yields a different 64-byte signature. Cause not yet isolated — randomized signing, or a seed mis-decode on import (the generate→sign→verify roundtrip probe passes, so WebKit's signatures verify under WebKit). Worth isolating before the upstream report.
AES-CBC: malformed ciphertexts decrypt (tc25/tc169 upstream-invalid empty-ciphertext vectors, probe/cbc-uniform-failure, and probe/cipher-wrap-uniform-failure — a malformed CBC wrap unwraps). Padding validation is crypto (padding-oracle territory), so host-side re-validation is out; platform bug to report upstream.
The compat matrix renders these as aspects (subrows) of their rows; the ledger entries in conformance/driver-ct/targets.toml name this issue.
The jco-webkit conformance target (Playwright WebKit on macOS — Apple's crypto backend, the Safari proxy) diverges from the package contract in four classes, declared as expected failures (tracked debt) mirroring the Deno (#351) and Firefox (#356) ledgers, plus one capability gap:
Capability: 8192-bit RSA public keys refused at import. The whole
rsassa-pkcs1-v15-sha256-8192row fails at importKey, exactly Deno's gap — declared as the existing gatedrsa-verify-8192capability (the!rsa-verify-8192decline case proves the refusal), not ledgered case-by-case.RSASSA-PKCS1-v1_5: unreduced signatures accepted (4 cases:
tc244/tc245upstream-invalidSignatureMalleabilityvectors across 2048/3072/4096 rows). WebKit's verify acceptss ≥ n. The package pins rejection; every other target rejects. Signature verification is crypto, so this is not host-fixable under the portability ladder (no re-implementation of verify host-side) — platform bug to report upstream.Ed25519: the empty message fails verification (4 cases:
tc1,tc71,tc80,tc102— upstream-valid vectors, including the RFC 8032 Test 1 known answer). WebKit rejectsverifywith an empty message where every other platform accepts.Ed25519: signing is not the RFC 8032 deterministic form (
probe/ed25519-private-format-imports): signing the RFC 8032 TEST 3 message with the TEST 3 seed imported via PKCS#8 yields a different 64-byte signature. Cause not yet isolated — randomized signing, or a seed mis-decode on import (the generate→sign→verify roundtrip probe passes, so WebKit's signatures verify under WebKit). Worth isolating before the upstream report.AES-CBC: malformed ciphertexts decrypt (
tc25/tc169upstream-invalid empty-ciphertext vectors,probe/cbc-uniform-failure, andprobe/cipher-wrap-uniform-failure— a malformed CBC wrap unwraps). Padding validation is crypto (padding-oracle territory), so host-side re-validation is out; platform bug to report upstream.The compat matrix renders these as aspects (subrows) of their rows; the ledger entries in
conformance/driver-ct/targets.tomlname this issue.