Skip to content

Decide whether the seal signs the payload or wraps it #123

Description

@LKSNDRTMLKV

Question

SealPort today assumes one shape: a finished JWS is produced, a digest is taken over it, and a detached qualified seal comes back alongside. Two artefacts — the payload signs itself, the seal attests it separately.

Selective disclosure assumes the other shape. In SD-JWT VC the credential carries an x5c chain including the qualified seal certificate, so the SD-JWT is the sealed object and the seal is its signature. One artefact.

These are not variations on a theme. They imply different port contracts, different verification stories, and different answers to "what exactly does the seal attest".

Why it blocks

Selective disclosure is the fix for a real defect: disclosure signatures are frozen per redaction pattern, so reclassifying a field breaks verification for every affected passport at once. See the x-disclosure work for the mitigation that is in place, and note it mitigates rather than removes.

Adopting SD-JWT is the removal. But building it against the wrong seal shape means the port is wrong, so this decision precedes the code.

What settles it

Whether a qualified seal can be obtained as a JOSE/JWS signature under the seal certificate, rather than only as a document-format seal (CAdES/PAdES/XAdES) over bytes.

  • If yes — the seal becomes the SD-JWT's signature. SealPort changes from "seal these bytes" to "sign this payload", and several existing decisions get revisited: the digest-over-the-JWS-string choice, the declared mimetype, the extensionless filename.
  • If no — SD-JWT can still be adopted, but as a non-qualified layer inside a sealed envelope. It solves the disclosure problem and does not inherit the seal's legal weight. Existing decisions stand.

Also open, and larger

Who holds the certificate. A seal attests the origin of what it covers, so whoever holds it is making a claim about content they may not have authored. That is a question about the product's role, not about the format, and it may change the answer above regardless of what is technically possible.

Not blocked on this

The x-disclosure mitigation, the field-level backstop, and the demonstration test all stand on their own and are already merged or in review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    complianceRegulatory/compliance correctness issuequestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions