Skip to content

v0.63.0

Choose a tag to compare

@osanderson osanderson released this 03 Nov 10:11
Immutable release. Only release title and notes can be modified.
f283d46

0.63.0 (2026-11-03)

⚠ BREAKING CHANGES

  • walletflow: PendingDeferred has Format, VCT and DocType fields. A DeferredStore of your own must keep them (walletflow/storetest's contract checks every field); sqlstore's and the mobile stores do. RefreshCredential and Deferred.Poll return ErrReissueRequired when the issuer's configuration now issues another type of credential.
  • statuslist: statuslist.Checker, CheckX5C and CheckCWTX5Chain refuse a check whose VerifyOptions sets neither Issuer, IssuerKey nor UnboundSigner; set UnboundSigner to statuslist.AnyListSigner where every signer under the roots may decide every credential's status. A Publisher with a sub-second TTL or Lifetime, or a TTL over its Lifetime, now fails to sign.
  • mdocdcapi: VerifyResponse refuses a Pending whose ExpiresAt is zero; keep the Pending BuildRequest returns whole, ExpiresAt with it.
  • verifier: a query asking for a format other than dc+sd-jwt or mso_mdoc, or for one Config.VPFormatsSupported doesn't list, is refused; list every format the Verifier asks for (MdocFormatSupport, SDJWTVCFormatSupport).
  • verifier: under AssuranceProduction, NewTransactions refuses a store that doesn't implement verifier.SealingStore returning true (sqlstore's TransactionStore does when its codec, or its DB, has a Sealer), unless TransactionsConfig.UnsealedStore is set, and a Lifetime over an hour.
  • issuer: under AssuranceProduction, New refuses a Notification Endpoint without a positive Limits.NotificationLifetime, and the deprecated MetadataHandler answers 500 rather than unsigned metadata when its signer is refused.
  • issuer: under AssuranceProduction with AnonymousPreAuthorizedCode, CreatePreAuthorizedOffer refuses an offer with neither CreatePreAuthorizedOfferRequest.TxCode nor NoTxCode.
  • issuer: with Config.AuthorizationServers set, an access token's authorization detail must list Config.Issuer in its locations to grant a configuration, and a pre-authorized Token Request's authorization_details must carry locations.
  • issuer: under AssuranceProduction, New refuses an AttestationVerifier or ProofBindingKeys of your own that embeds an X5CAttestationVerifier or X5CProofBindingKeyResolver whose Revocation is nil, or an X5CAttestationVerifier with no explicit IssuerBinding, as it already refused them unwrapped.

Features

  • issuer: give Prepare the claims an authorization detail asks for (71f8042)

Bug Fixes

  • compare every JOSE typ as a media type (b01f66f)
  • issuer: accept jwt proofs that carry a key attestation as OpenID4VCI allows (bcfbabb)
  • issuer: keep an X5C verifier's checks when it's wrapped (9737c88)
  • issuer: keep New's own copy of the Config, and hand out copies from Metadata (b20a02f)
  • issuer: refuse a PerCredential that drops a Credential's claims (088099d)
  • issuer: require a notification lifetime, and signed metadata, under production (cc93ded)
  • issuer: require a Transaction Code for anonymous pre-authorized offers in production (46918b9)
  • issuer: require locations in authorization details when authorization_servers is set (024cfd2)
  • issuer: state the granted scope in the pre-authorized Token Response (d695107)
  • mdocdcapi: give a request an expiry its response is checked against (27777cf)
  • proximity: accept a compressed EDeviceKey (475715c)
  • proximity: generate the NFC-only engagement key from crypto/rand (3cb662d)
  • proximity: leave the NFC data-field limits out of the reader's Handover Request (753c6f3)
  • proximity: select the NFC data application as ISO/IEC 18013-5 Table 8 has it (905b016)
  • proximity: take mdoc central client mode when a static handover offers both (3e4315e)
  • read Request Object, signed metadata and Key Attestation times as range-checked NumericDates (adc1966)
  • refuse a small-order Ed25519 key when verifying JWS and COSE signatures (9226ce0)
  • sdjwtvc: refuse _sd_alg anywhere but the payload's top level (b9f7e04)
  • statuslist: bind a Status List Token's signer by default, and size tokens to match (778cae4)
  • verifier: describe a discarded presentation with fixed text (22c7b9d)
  • verifier: discard the rest of a credential set option a failed presentation leaves incomplete (d18eb94)
  • verifier: find an SD-JWT VC's array index among the disclosed elements (1bf2b70)
  • verifier: refuse a request for a format the Verifier doesn't verify or advertise (c9b687a)
  • verifier: require a sealing transaction store and a bounded lifetime in production (caf2329)
  • wallet: finish sending a signed presentation when its context is cancelled (ccbe7f5)
  • walletflow: clean a tx_code's description before it reaches the PIN prompt (d3ae36b)
  • walletflow: keep a refreshed or deferred credential the type the holder agreed to (bf739ec)
  • walletflow: never present a revoked copy while a valid one is left (06544d6)
  • wallet: refuse a Verifier's redirect_uri to a Wallet invocation scheme (22e760d)