Skip to content

chore(main): release 0.53.0 - #706

Open
osanderson wants to merge 1 commit into
mainfrom
release-please--branches--main
Open

osanderson wants to merge 1 commit into
mainfrom
release-please--branches--main

Conversation

@osanderson

@osanderson osanderson commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

0.53.0 (2026-10-24)

⚠ BREAKING CHANGES

  • dcql: with AKITrustedAuthoritiesChecker.Roots, a trust anchor whose Subject Key Identifier isn't derived from its key (SHA-1, or SHA-256 truncated to 160 bits, of its subjectPublicKey) no longer matches an "aki" value naming that identifier. Set Anchors to the anchor certificates in place of Roots, e.g. dcql.AKITrustedAuthoritiesChecker{Anchors: issuerCAs}, and call Validate at startup to catch anchors claiming the same identifier.
  • wallet: wallet.VerifyIssuedCredential, and so walletflow, now refuse an issued mdoc that fails mdoc.CheckDocumentSigner, as verifiers already do: among others one whose IACA or document signer certificate has no countryName, or whose issuing_country doesn't match its signer. Issue mdocs from an IACA and document signer that name their country.
  • issuer: PreAuthorizedCodeStore.Consume gains a final parameter, accept func(PreAuthorizedCodeRecord) error. A custom store must, after its tx_code check succeeds and before it invalidates the code, call accept (when non-nil) with a copy of the record inside the same transaction or lock; if accept returns an error, return that error unchanged (or wrapped so errors.Is finds it), leave the code in place, and count no wrong attempt. Accept is never called for an unknown code or a missing, unexpected or wrong tx_code. Callers of Consume that check nothing pass nil. Run issuertest's TestPreAuthorizedCodeStoreContract against the store to confirm.
  • issuer: AttestationStatusChecker.CheckAttestationStatus takes an issuer.VerifiedKeyAttestation instead of an attestation.VerifiedClaims. Read the claims from its Claims field, and bind the status list's signer to SignerKey (and Claims.Issuer, when set).
  • issuer: an AccessTokenVerifier must set Grant.Authorized.Subject to Grant.Subject. A verifier that set only Grant.Subject now gets a 500 for every request; set both to the access token's subject.
  • walletflow: outside Development, walletflow.New refuses a Config whose IssuerRoots, IssuerMetadataRoots, RegistrarRoots, MdocReaderRoots and VerifierTrust roots share a certificate subject between any two roles, or use a platform system pool beside another role, unless both roles have a leaf policy. Give each such role a leaf policy (an extended key usage) that tells its certificates apart, or build each role's pool from anchors no other role uses.
  • walletflow: a copy presented over a signed DC API request is no longer recorded as shown to "origin:" + origin, so asking StoredCredential.ShownTo for "origin:" + origin is false for it. Ask the presentation instead: Presentation.ShownTo with the credential's ID reports whether its Verifier has seen it.
  • mdoc: an mdoc whose document signer certificate has an extended key usage extension without 1.0.18013.5.1.2 (one listing only another purpose, such as clientAuth or a private OID) is now refused by the default policy. Issue document signers with the mDL document signer EKU, or set LeafPolicy, IssuerLeafPolicy or WithDocumentSignerPolicy to a policy accepting the EKU your document signers carry.
  • mdoc: an mdoc whose status list is signed under a CA other than the one that issued its document signer (directly under the root above that CA, say) now fails its status check. The issuer signs its status lists under the CA that issued its document signer, or names the status list's trust point in the MSO's status Certificate.

Features

  • issuer: bind key attestation signers to the attestation's iss (9adc860)
  • issuer: give AttestationStatusChecker the key attestation's signer (f48396f)
  • mdoc: add decoy digests to the MSO's valueDigests (2f533b1)
  • sdjwtvc: add decoy digests to nested _sd arrays (a265df5)
  • verifier: add RequireStatusReference to refuse credentials without a status (32cca0b)
  • verifier: refuse one credential for two queries under DistinctCredentials (5e557f1)
  • walletflow: fetch request_uri by POST when the link asks for it (921b81c)
  • walletflow: give mdocs their own issuer roots and leaf policy (7ed704f)

Bug Fixes

  • compare DPoP htm exactly, refuse non-canonical origins, keep results as long as Lookup reports them (3811bf6)
  • dcql: match trust anchors by key-derived identifiers (f60ef52)
  • issuer: call Prepare only once the Credential Request is authorized and its proofs verified (f618425)
  • issuer: cap the keys jwt proofs resolve at batch_size in every case (3cde3ad)
  • issuer: check a pre-authorized code's record before consuming it (1ea1c1a)
  • issuer: refuse a Grant whose two subjects disagree (df3ed23)
  • issuer: verify a deferred transaction's key attestations again before issuing (c89ea8a)
  • mdoc: bind an mdoc status list's signer to the CA that signed the document signer (0187d28)
  • mdoc: refuse a document signer whose EKU leaves out the mDL DS purpose (3f5307a)
  • verifier: report only issuer chains the leaf policy approves (dd83fe7)
  • wallet: decode issuer, server and verifier responses strictly (15cc1af)
  • walletflow: drop issuer logos on local host names (2d91744)
  • walletflow: give a caller's HTTP client a timeout (cc2da90)
  • walletflow: refuse trust pools that may share an anchor (2600784)
  • walletflow: report copies correlated by shared digests or timestamps (b154373)
  • walletflow: tell apart signed DC API Verifiers sharing an origin (2d2bc52)
  • wallet: preview every claim a presentation reveals inside arrays (e0fffaf)
  • wallet: refuse an issued SD-JWT VC that doesn't end with '~' (40eb450)
  • wallet: run the mdoc document signer checks on receipt (297d0a1)

This PR was generated with Release Please. See documentation.

@osanderson
osanderson force-pushed the release-please--branches--main branch 5 times, most recently from d1c6b6c to 0db11be Compare October 24, 2026 00:28
@osanderson
osanderson force-pushed the release-please--branches--main branch from 0db11be to a31546f Compare October 24, 2026 00:52
@sonarqubecloud

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant