v0.7.0 (dev)
Upgrading
The
wia_trust_anchorsconfiguration parameter of all services that issue credentials has been renamed towptl_trust_anchors. Additionally, thewallet_providerconfiguration has had parameters added, among which are the Key Attestation private key and certificate. This certificate should validate under one of thewptl_trust_anchors, just like the WIA certificate does. Note that the trust anchor under which these certificates are issued need not be the same for the same Wallet Provider.The PID, as issued by the
pid_issuer, was updated to match the EUDI PID Rulebook. Some mdoc attribute identifiers now differ from their previous names:birthdateis nowbirth_date,nationalitiesis nownationality, andstreet_address,postal_code,locality, andcountryare nowresident_street,resident_postal_code,resident_city, andresident_countryrespectively.house_numberis included as part ofresident_street.place_of_birthis now an object withcountryandlocalityproperties. The mdocdoctypeidentifier was changed to match the EUDI PID Rulebook. The attributeage_over_18has been removed.issuing_country,issuing_authorityandsexare added as new attributes.birthdateis now encoded as afull-date(CBOR tag 1004). Theissuing_countryandissuing_authoritymust be configured in the PID issuer settings. The NL-specific mdoc attributesbsnandrecovery_codehave moved to the domesticeu.europa.ec.eudi.pid.nl.1namespace, as required for attributes not defined in the Rulebook. Thepid_attributespaths in the wallet configuration and any Relying Party requests or registration certificates for these attributes must be updated accordingly.As part of OpenID4VCI Key Attestations, the Wallet Provider now serves a Status List Token for its Key Storage. In order to facilitate this, it has had the following parameters added to its configuration:
The main section of the configuration has a
public_urlparameter, which should contain the URL at which the Wallet Provider is publicly reachable.The
key_storage_status_listsection has the combination ofkey_identifierandkey_certificate, where the latter should contain the public key corresponding to the private in the HSM to which the former parameter points.Also present in the
key_storage_status_listare the optionalexpiry_in_hoursandtracking_validity_in_daysparameters, both of which dictate expiration periods as included in the Key Storage Status List Token.
The
wallet_client_idssetting has been removed from the verification server configuration. It was used to verify the issuer of the Proof of Association (PoA), which has been removed.
New features
Issuers have a new optional setting
credential_preview_endpoint(defaulttrue). When set tofalse, the issuer does not serve the non-standard Credential Preview Endpoint, behaving like a standard OpenID4VCI issuer. This is intended for testing the wallet against such issuers; note that the wallet still requires previews for PID and disclosure based issuance.Wallet supports X509 certificates with ES384 and RSA (min 2048) keys.
Interoperability improvements
The
attestationproof type has been implemented according to OpenID4VCI, HAIP and TS3. Both the Issuer and the WSCD have switched to this proof type instead ofjwt. NB: Thejwtproof type has not yet been updated to conform to OpenID4VCI 1.0 and its implementation is now effectively dead code.The wallet now also accepts a registration certificate in JWT format that is included in
verifier_infoorissuer_infoas a compact JWT, without the additional base64url encoding required by ETSI TS 119 472-2.The PID, as issued by the
pid_issuer, was updated to match the EUDI PID Rulebook. Note thatportrait, even though being mandatory, is not included at all because the BRP does not provide it.place_of_birthis also not marked as mandatory because our implementation cannot handle that yet.The JPEG 2000 image format, which may be included in the mDL, is now supported.
Bug fixes
The wallet accepts wallet configurations fetched from the configuration server again. Since v0.6.0, it required the
typheader of the configuration JWT to be exactlyJWT, while the configuration is signed withjwt. Thetypheader of all JWTs is now compared case-insensitively, as required by RFC 7515.The wallet now only stores the
ETagof a wallet configuration after accepting it. Previously, a rejected configuration was considered unmodified on every subsequent fetch, so it was never evaluated again.