Skip to content

Firefox platform gaps: the jco-firefox target's expected-fail ledger #356

Description

@lann

The jco-firefox conformance target (Playwright Firefox, Gecko JSPI pref) diverges from the other platform-WebCrypto-backed hosts in two capability windows the WIT admits. Both are Gecko/NSS strictness — the platform refuses material or parameters the package contract currently expects served — so they are declared as expected failures (tracked debt), mirroring the Deno ledger (#351).

X25519: low-order / non-canonical public keys refused at import (66 cases: x25519/wycheproof{,-spki,-jwk} — the LowOrderPublic/NonCanonicalPublic ZeroSharedSecret acceptables, plus probe/x25519-... none). NSS applies contributory-behavior checks: public keys of small order (and non-canonical u-coordinates) are rejected at importKey with DataError, where Chromium, WebKit, Node, and Deno import them and derive the all-zero shared secret per RFC 7748. The translation policy currently admits these vectors.

  • Same-class question for a future ruling: whether to narrow uniformly (portability strategy 3 — reject low-order X25519 public keys everywhere; a defensible contributory-behavior posture) instead of carrying the ledger. That is a package-contract change and needs its own decision.

AES-CTR: counter widths below the platform floor (probe/ctr-known-answers): Gecko refuses very narrow counter windows (the probe's 2-bit counter fails with OperationError) where the WIT window is 1–128 bits. Same family as Deno's 32/64/128 restriction, different floor.

The compat matrix renders both as aspects (subrows) of their rows; the ledger entries in conformance/driver-ct/targets.toml name this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions