Releases: a-sit-plus/vck
Releases · a-sit-plus/vck
5.11.0
Release 5.11.0 of VC-K supports DC API presentations acc. to ISO/IEC 18013-5 and 18013-7, fixes some bugs in the implementations of OpenID4VP 1.0 and OpenID4VCI 1.0, and extends support for DCQL features in presentations.
- Digital Credentials API:
- Add request/response models for OpenID4VP and ISO 18013-7 Annex C flows, including protocol identifiers, wallet/verifier request options, and typed responses
- Add serializers for
DeviceRequest,EncryptionInfo, and encrypted responses for Annex C/DC API interop
- ISO/IEC 18013-5 and 18013-7:
- Introduce Annex C verifier and request options to create mdoc requests, derive session transcripts, and validate encrypted device responses
- Adapt wallet data classes to prepare support for iOS
- Add data classes and serializers for zero-knowledge proofs
- Add
ZkSystemParamRegistryto enable zero-knowledge backends to register serializers for their custom parameters
- Token status list:
- Add
IdentifierListandIdentifierListInfoand related classes - Add
RevocationListandRevocationListInfosealed classes - Replace
Statusclaim withRevocationListInfoin VC / SD-JWT / MSO payloads - CBOR encoded token status list shall not be tagged with 24 like other COSE payloads (
d818in hex) - Move some methods from
IssuerCredentialStoreto new interfaceReferencedTokenStoreto decoupleStatusListAgentfromIssuerAgent
- Add
- OpenID for Verifiable Credential Issuance:
- In
SimpleAuthorizationServiceadd parameterconfigurationIdsto methodcredentialOfferWithAuthorizationCode - Support different supported credential formats having the same scope value (as this is covered by the spec)
- Be sure to use correct JWE encryption algorithm on issuer and wallet side and advertise keys correctly
- In
WalletEncryptionServiceadd constructor parameterfallbackJweEncryptionAlgorithmand deprecatedsupportedJweEncryptionAlgorithm
- In
- OpenID for Verifiable Presentations:
- In
OpenId4VpVerifieradd constructor parametersupportedJweEncryptionAlgorithmsto advertise in metadata, deprecatingsupportedJweEncryptionAlgorithmandsupportedJweAlgorithm - In
RequestOptionsdeprecate propertyencryption, as this depends on the response mode - In
AuthnResponseResultreturned fromOpenId4VpVerifier.validateAuthnResponse()remove parameterstate - In
OpenId4VpVerifierremovevalidateAuthnResponse(input: Map) - In
OpenId4VpVerifieradd option to provideexternalIdwhen validating authn responses, useful for DCAPI flows - Rename
RequestOptionstoOpenId4VpRequestOptionsand add DC API/DCQL options likeexpected_origins, optionalclient_id, and strictertransaction_datachecks - Build session transcripts for DC API responses, verify
expected_origins, and parse DC APIOpenId4VpResponseinputs without requiringstate
- In
- DCQL in OpenID for Verifiable Presentations:
- Support attribute
multiplein inDCQLCredentialQuery - Support attribute
require_cryptographic_holder_bindinginDCQLCredentialQuery - Support attribute
trusted_authoritiesinDCQLCredentialQuery, for Authority Key Identifierakionly - Result in
VerifiableDCQLPresentationValidationResultsnow carries a map of query id to a list ofAuthnResponseResultinstead of a single one - Support queries for W3C Verifiable Credentials (format
jwt_vc_json), with thanks to etnafed
- Support attribute
- OpenID4VC High Assurance Interoperability Profile (HAIP):
- Add
VerifyStatusListTokenHAIPand related resolver/tests to enforce requirements from draft 04
- Add
- OAuth 2.0:
- In
SimpleAuthorizationServiceofferclient_attestation_pop_signing_alg_values_supportedandclient_attestation_signing_alg_values_supportedin line with OAuth 2.0 Attestation-Based Client Authentication OAuth2KtorClient: Read and cacheDPoP-Noncefrom success responses and include it in subsequent DPoP proofs- In
SimpleAuthorizationServiceprovide methodsparWithDpopNonce,tokenWithDpopNonceanduserInfoWithDpopNonceto provide nonces to clients for their next request
- In
- Refactoring:
- Move shared nonce/map store utilities and add helpers to choose encryption keys and compute session transcript thumbprints to main module
- Deprecations:
at.asitplus.wallet.lib.oidvci.NonceServiceis nowat.asitplus.wallet.lib.NonceServiceat.asitplus.wallet.lib.oidvci.DefaultNonceServiceis nowat.asitplus.wallet.lib.DefaultNonceServiceat.asitplus.wallet.lib.oidvci.MapStoreis nowat.asitplus.wallet.lib.utils.MapStoreat.asitplus.wallet.lib.oidvci.DefaultMapStoreis nowat.asitplus.wallet.lib.utils.DefaultMapStoreat.asitplus.wallet.lib.openid.RequestOptionsis nowat.asitplus.wallet.lib.openid.OpenId4VpRequestOptionsat.asitplus.dcapi.request.DCAPIRequestis nowat.asitplus.dcapi.request.DCAPIWalletRequestat.asitplus.dcapi.request.Oid4vpDCAPIRequestis nowat.asitplus.dcapi.request.DCAPIWalletRequest.OpenId4VpUnsignedorat.asitplus.dcapi.request.DCAPIWalletRequest.OpenId4VpSigned
- Dependency Updates:
- Gradle 9.2.0
- Kotlin 2.3.0
- Dokka 2.10.0
- Return value checker defaults to
check - AGP 8.12.3
- Ktor 3.3.3
- Bouncy Castle 1.83 (no more forcing exact version)
- TestBalloon 0.8.2-K2.3.0
- Signum 3.19.3
5.10.1
- Proximity presentations:
- Return multiple ISO mDoc credentials in one device response when generating a presentation in proximity flows
- OpenID for Verifiable Presentations:
- In
RequestOptionsdeprecate propertyencryption, as this depends on the response mode - In
OpenId4VpVerifierremovevalidateAuthnResponse(input: Map) - In
OpenId4VpVerifieradd option to provideexternalIdto methodsvalidateAuthnRequest()andsubmitAuthnRequest(), useful for DCAPI flows
- In
5.10.0
VC-K 5.10.0 updates the implementation of OpenID for Verifiable Presentations to 1.0 from 9 July 2025 and the implementation of OpenID for Verifiable Credential Issuance to 1.0 from 16 September 2025 in preparation for EUDI Wallets Launchpad.
Details:
- StatusListToken:
- Remove
StatusTokenValidator - Remove
StatusTokenIntegrityValidatorclass - Refactor
StatusListToken.StatusListJwttoStatusListJwt - Refactor
StatusListToken.StatusListCwttoStatusListCwt
- Remove
- OAuth 2.0:
- Use correct path for metadata retrieval (inserting strings between host component and path component)
- Support reading resource-server provided nonce for OAuth 2.0 Demonstrating Proof of Possession (DPoP)
- Use pushed authorization requests when AS supports it
- Use signed authorization requests when AS supports it (but not necessarily when using PAR)
- OpenID for Verifiable Credential Issuance:
- Update implementation to 1.0 from 2025-09-16
- Remove code elements deprecated in 5.9.0
- Drop single
proofin credential request - Support credential response encryption correctly, see changed API in
CredentialIssuer.credential() - Correctly verify credential request regarding
credential_configuration_idandcredential_identifiers - Support credential request encryption correctly, if metadata is set at Issuer
- OpenID for Verifiable Presentations:
- Update implementation to 1.0 from 2025-07-09
- Remove code elements deprecated in 5.9.0
- Use correct syntax for
vp_tokenin responses to DCQL queries, i.e., with an array - Drop session transcript implementation from ISO/IEC 18013-7:2024 Annex B, which was pre-OpenID4VP 1.0
- Remove deprecated format identifier
vc+sd-jwt(nowdc+sd-jwt) - Remove deprecated client identifier prefix scheme
x509_san_uri - Use correct response encryption acc. to values stated in
encrypted_response_enc_values_supportedinsideclient_metadata - Correct evaluation of
vp_formats_supportedinsideclient_metadata - Advertise correct wallet metadata for retrieving authn requests, e.g.
client_id_prefixes_supported - Drop support for signed-then-encrypted responses, as in OpenID4VP 1.0
- Drop support for mdoc generated nonces, as in OpenID4VP 1.0
- Deprecate method
validateAuthnResponse(input: Map<String, String>)inOpenId4VpVerifierbecause it eluded correct input parsing - When returning multiple ISO mDoc credentials, make sure to create one device response object per document, wrapping in separate VP tokens
- SD-JWT:
- Fix creation of SD JWTs containing structures that are selectively disclosable
- Fix creation of arrays in SD JWTs ... issuers are advised to use
ClaimToBeIssuedArrayElementfor such elements
- Issuance:
- Introduce duration to subtract for the issuance date of credentials, see
IssuerAgent.issuanceOffset - Do not issue SD-JWT credentials with a unique identifier in
jti - Truncate issuing timestamps to seconds
- Introduce duration to subtract for the issuance date of credentials, see
- Remote Qualified Electronic Signatures:
- Remove modules deprecated in 5.9.0:
vck-rqes,rqes-data-classes
- Remove modules deprecated in 5.9.0:
5.9.0
- Refactor
RqesWalletServiceto be stateless - Remove code elements deprecated in 5.8.0
- Gradle modules:
- Change dependency structure of modules
- Remove
vck-rqesmodule, relevant classes have been moved tovck-openid - Rename
rqes-data-classestocsc-data-classes - Move DIF-related classes to
dif-data-classes - Move OpenId-related classes to
openid-data-classes - Remove class
Initializerfromvck-openid
- Remote Qualified Electronic Signatures:
- Remove "UC5-flow" option in RQES flows
- Remove
transactionDatafromKeyBindingJws - Remove
QesAuthorizationDetails - Refactor
AuthorizationDetailsto sealed class - Remove
QesInputDescriptor - Refactor
InputDescriptorto sealed class - Remove
RqesRequestOptions - Remove
RequestOptionsinterface - Rename
OpenIdRequestOptionstoRequestOptions - Refactor
TransactionDatato sealed class - In
TransactionDatamakecredentialIdsmandatory - Refactor
RequestParametersto sealed class
- Validation:
- Improve validation of JWT VC
- Remove subclass
InvalidStructurefromVerifier.VerifyCredentialResult, is now mapped toValidationError
- Refactor handling of key material:
- Introduce interface
PublishedKeyMaterialto indicate clients can lookup that key with theidentifierused as akeyIdin a key set - Other key material gets randomly assigned identifiers to not rely on DIDs
- For JVM add
PublishedKeyStoreMaterialto load keys from Java key stores with a fixed identifier - In class
HolderAgentrequire theidentifierto be a URI, set in the constructor, as required for SD-JWT and JWT VC - Key material will be referenced by its
keyIdand key set URL or by its certificate or plain public key in JWS proofs
- Introduce interface
- Remove workarounds and deprecated features:
- OpenID4VP: Verify mDoc generated nonce correctly (not supporting broken EUDIW RI)
- OpenID4VP: Only send the
responseparameter when usingdirect_post.jwt(not supporting broken EUDIW RI) - OpenID4VP: Use credential format identifier
dc+sd-jwteverywhere - OpenID4VP: Discard option to use deprecated
client_id_schemeparameter inClientIdSchemesubclasses - OpenID4VP: Do not read the explicit parameter
client_id_scheme(it's prefixed in theclient_id) - OpenID4VP: Do not send signed JWT as authentication responses, but always encrypt them when using
direct_post.jwt - OpenID4VP: Remove
signDeviceAuthFallbackinOpenId4VpHolderwhich has been used for mDoc presentations, but was not part of any spec - OpenID4VP: Remove
BackwardsCompatibleDCQLQuerySerializerwhich has been able to parse DCQL queries as strings in addition to the usual JSON object - OpenID4VP: Never sign responses, either send it in plain or encrypted (OpenID4VP 1.0 has dropped JARM)
- DCAPI: Remove (already deprecated) preview data class
PreviewDCAPIRequest, either use OpenID4VP or ISO 18013-7 Annex C
- JWE:
- Add
EncryptJweSymmetricFunandEncryptJweSymmetricandDecryptJweSymmetric
- Add
- OAuth 2.0:
- Refactor the split between credential issuer (OpenID4VCI) and authorization server (OAuth2.0)
SimpleAuthorizationServicesupports token exchange acc. to RFC 8693SimpleAuthorizationServicesupports token introspection acc. to RFC 7662- Implement
RemoteOAuth2AuthorizationServerAdapterso that credential issuers may be connected to external OAuth2.0 authorization servers - Implement
OAuth2KtorClientto implement a ktor-based client for OAuth 2.0, including OAuth 2.0 Demonstrating Proof of Possession (DPoP) - Remove generics from methods in
OpenId4VpHolderand work directly withAuthorizationRequestParameters - In
PresentationFactoryreplaceRequestParametersin function signatures to work directly withAuthorizationRequestParameters - Remove all parameters from
RequestParameters, moved into their respective implementing class - Add data class
JarRequestParametersimplementingRequestParametersto handle JWT-secured authorization requests explicitly - In
AuthorizationServiceandSimpleAuthorizationServicedeprecate methodauthorizewithAuthenticationRequestParameters, useRequestParametersinstead - In
AuthorizationServiceandSimpleAuthorizationServicedeprecate methodparwithAuthenticationRequestParameters, useRequestParametersinstead - In
OAuth2Clientadd methodcreateAuthRequestJarto make intent more explicit - Allow
SimpleAuthorizationServiceto toggle usage of PAR and JAR with newrequirePushedAuthorizationRequestsandrequestObjectSigningAlgorithmsparameters
- Cryptography:
- Use secure random for source of nonces by default, but also expose constructor parameters to override it
- Update implementation of OpenID for Verifiable Credential Issuance to draft 17:
- Offer
signedMetadatainCredentialIssuer - In
OpenIdAuthorizationDetailsdeprecate properties that have been dropped from the spec:format,docType,sdJwtVcTypeandcredentialDefinition - In
SupportedCredentialFormatadd new property aboutCredentialMetadata, movingdisplayandclaims - In
TokenResponseParametersremoveclientNoncethat has been dropped in OID4VCI draft 14 - In
CredentialRequestParametersdeprecateproof, useproofsinstead - Use correct error values for
unknown_credential_configurationandunknown_credential_identifier - In
CredentialIssuerdeprecate constructor parametersencryptCredentialRequest,requireEncryption,supportedJweAlgorithms,supportedJweEncryptionAlgorithms - In
CredentialIssuerintroduce constructor parameterencryptionServicewhich handles credential request decryption and credential response encryption - In
CredentialIssuerdeprecate methodnonce() - In
CredentialIssueradd methodnonceWithDpopNonce()to provide a DPoP nonce to clients (only when the AS is internal) - In
CredentialIssueruse the COSE algorithm identifiers (e.g. -7) for signing algorithm values in the metadata - In
WalletServicedeprecate constructor parametersrequestEncryption,decryptionKeyMaterial,supportedJweAlgorithm,supportedJweEncryptionAlgorithm - In
WalletServiceintroduce constructor parameterencryptionServicewhich handles credential request encryption and credential response decryption - In
WalletServiceadd methodparseCredentialResponseto transform the received credential response from the issuer intoStoreCredentialInput - In
WalletServicedeprecate methodcreateCredentialRequestand replace it withcreateCredentialto handle encryption
- Offer
- Presentation classes:
- In
CreatePresentationResult.Signedadd property containingJwsSigned<VerifiablePresentationJws> - In
CreatePresentationResult.SdJwtadd property containingSdJwtSigned - Deprecate
SdJwtSigned.parse(), please migrate toSdJwtSigned.parseCatching() - OpenID for Verifiable Presentations: Update implementation to draft 29:
- In
AuthenticationRequestParametersdeprecate memberclient_metadata_uri - In
RequestOptionsdeprecate memberclientMetadataUrl - In
OpenIdConstantsdeprecate memberX509SanUri - In
AuthenticationRequestParametersandAuthorizationResponsePreparationStateaddVerifierInfoto display to user - In
RelyingPartyMetadatadeprecatevp_formats, replace withvp_formats_supported, using correct algorithm values - Change
DCQLCredentialQuery.metato be mandatory - Add
DCQLEmptyCredentialMetadataAndValidityConstraints - In
OpenId4VpVerifieradd constructor parameterdecryptionKeyMaterialto supply a key for decrypting encrypted responses from holders - In
OAuth2AuthorizationServerMetadatadeprecateclient_id_schemes_supported, replace withclient_id_prefixes_supported - Add
ClientIdScheme.CertificateHashmapping to client identifier prefixx509_hashfrom OpenID4VP - Use session transcript for mDoc presentations as defined in OpenID4VP
- Deprecate and refactor methods in
OpenId4VpHolderandOpenId4VpWalletto fetch external resources only once, clients need to callstartAuthorizationResponsePreparation()and thenfinalizeAuthorizationResponse() OpenId4VpHolderdoes not return aKmmResult.failurewhen building the response fails, but returnsAuthenticationResponseResultcontaining error parametersOpenId4VpWalletdoes not send an error response to the verifier automatically- Extend
RequestParametersFromwith sub-classes forDcApiSignedandDcApiUnsigned, removing the parameterdcApiRequestfrom several methods inOpenId4VpVerifierandOpenId4VpWallet - Extend
RequestParametersFrom.JwsSignedwith aparentmember - Extend
RequestParametersFrom.Jsonwith aparentmember
- In
- SD-JWT:
- Honour digest defined in
_sd_algparameter to allow for more digests in issuance and verification of selective disclosures items
- Honour digest defined in
- Make it possible to disable all apple targets by setting Gradle property
disableAppleTargets=true(either throughgradle.properties/local.propertiesor as env variable) - Dependency Updates:
- Kotlin 2.2.21
- Signum 3.18.2 / Supreme 0.10.2
- Build Updates:
- AGP 8.12.3 with new Android KMP Library Plugin
- Migrate from Kotest to TestBalloon
- Remove dodgy Swift-Klib workarounds
5.8.0
- Refactor
AuthorizationServiceStrategy- Allow for general AuthorizationDetails
- Remove
filterAuthorizationDetailsfunction - Add
validateAuthorizationDetailsfunction - Add
matchAuthorizationDetailsfunction - Add
RqesAuthorizationServiceStrategyclass
- Refactor
SimpleAuthorizationServiceand- Add
SimpleQtspAuthorizationServiceclass - Remove
AuthorizationDetailmatching and validation from class to interface function
- Add
- Code organization:
- Remove code elements deprecated in
5.7.0 - Remove all remaining
serialize()anddeserialize()methods in data classes - Move data classes for token status into artifact
openid-data-classes, keeping the namespace - Move data classes for VC and SD-JWT into artifact
openid-data-classes, keeping the namespace
- Remove code elements deprecated in
- Refactoring of ISO data classes:
- Move data classes from
vcktoopenid-data-classes - List of classes moved:
MobileSecurityObject,Document,IssuerSigned,DeviceResponse
- Move data classes from
- Issuer:
- Extract interface
StatusListIssuerout ofIssuerto separate credential issuing and status list management - Rework interface
IssuerCredentialStore, deprecating methodsstoreGetNewIndexand classIssuerCredentialStore.Credential - In
Issuer.IssuedCredentialadd the typed credentials as properties, add propertyuserInfo - In
StatusListIssuerdeprecate methodsrevokeCredentials()andrevokeCredentialsWithId(), callers should userevokeCredential() - In
CredentialIssuerdeprecate constructor parametercredentialProvider, replace withcredentialDataProvider - Extend
CredentialToBeIssuedto contain propertiesexpiration,scheme,subjectPublicKey,userInfo - In
CredentialIssuermove constructor parameter for loading data to methodcredential() - Extract
ProofValidatorout ofCredentialIssuer - Extract
CredentialSchemeMappingout of various top-level methods - In
SimpleAuthorizationServicedeprecate constructor parameterdataProvider, useauthorize()withOAuth2LoadUserFuninstead - In
AuthorizationServicedeprecateauthorize()methods, addingauthorize()withOAuth2LoadUserFun
- Extract interface
- Credential schemes:
- Provide fallback credential schemes, to be used when no matching scheme is registered with this library:
SdJwtFallbackCredentialSchemeVcFallbackCredentialSchemeIsoMdocFallbackCredentialScheme
- Note that these schemes are not resolved automatically, and need to be used explicitly in client applications
- Provide fallback credential schemes, to be used when no matching scheme is registered with this library:
- SD-JWT:
- Add data class for SD-JWT VC Type metadata in
SdJwtTypeMetadata - Update signum to provide SD-JWT VC Type metadata in
vctmin the header of a SD-JWT
- Add data class for SD-JWT VC Type metadata in
- Validation:
- Remove internal class
Parserand data classesParseVpResultandParseVcResult - Extract
ValidatorMdoc,ValidatorSdJwt,ValidatorVcJwsfromValidator - In
HolderAgentadd constructor parameters forvalidatorVcJws,validatorSdJwt,validatorMdoc - In
Validatordeprecate constructor parameterresolveStatusListToken, clients shall usetokenStatusResolverinstead - In
Verifierremove parameterchallengefromverifyPresentationIsoMdoc() - Rename
SdJwtValidatortoSdJwtDecoded - In
VerifiablePresentationParsedadd the input data too, that is theVerifiablePresentationJws - In
IsoDocumentParsedadd the input data too, that is theDocument
- Remove internal class
- Respond to failed authentication request with error:
- In class
OpenId4VpWalletadd methodsendAuthnErrorResponse - In data class
OAuth2Erroradd memberstate - In data class
AuthenticationResponseadd membererror, makeparamsoptional - In class
AuthenticationResponseFactoryadd membersignError - In class
OpenId4VpHolderadd membersignError, add methodcreateAuthnErrorResponse
- In class
- Dependency Updates:
- Kotlin 2.2.0
- Signum 3.17.0 / Supreme 0.9.0
- kotlinx.datetime 0.7.1.
- This moves Instant and Clock to stdlib
- (but introduces typealiases for easier migration)
- Also forces serialization 1.9.0
- Update to latest conventions plugin:
- Bouncy Castle 1.81!!
- Serialization 1.9.0
- Coroutines 1.10.2
- Ktor 3.2.2
- Kotest 6.0.0.M6
- Update JsonPath4K to 3.0.0
- Disable bogus ios X64 test tasks
- Help XCode to get its act together
- Add a manual test workflow to try different kotlin/ksp/kotest versions
5.7.2
5.7.1
5.7.0
- Remote Qualified Electronic Signatures:
- Remove code elements deprecated in
5.6.0
- Remove code elements deprecated in
- JWS and COSE handling:
- Remove code elements deprecated in
5.6.0
- Remove code elements deprecated in
- OpenID for Verifiable Credential Issuance:
- Expose
oauth2ClientinWalletService - Remove code elements deprecated in
5.6.3inOpenId4VciClient - Update
transaction_data_hashesaccording to result from openid/OpenID4VP#621
- Expose
- Holder:
- Replace
keyPairwithkeyMaterial
- Replace
- Functions:
- Replace type aliases with functional interfaces (providing named parameters in implementations)
- Make cryptographic verification functions suspending
- Fully integrated crypto functionality based on Signum 3.16.2. This carries over breaking changes:
- All debug-only kotlinx.serialization for cryptographic datatypes like certificates, public keys, etc. was removed
- This finally cleans up the RSAorHMAC
SignatureAlgorithm.RSAorHMACis now properly split intoSignatureAlgorithmandMessageAuthenticationCode. Both implementDataIntegrityAlgorithm.- This split also affects
JwsAlgorithm, which now has subtypes:SignatureandMAC. Hence,JwsAlgorithm.ES256->JwsAlgorithm.Signature.ES256
- Separate credential timeliness validation from content semantics validation
- Change
Validatorconstructor to include configuration of the credential timeliness validator - Change
Validator.verifyVcJwsto not perform timeliness validation - Change
Validator.verifySdJwtto not perform timeliness validation - Replace property
isRevokedwith propertyfreshnessSummaryin:Verifier.VerifyPresentationResult.SuccessSdJwtIsoDocumentParsedAuthnResponseResult.SuccessSdJwt
- Change type of
VerifiablePresentationParsed.verifiableCredentialsandrevokedVerifiableCredentialstoCollection<VcJwsVerificationResultWrapper> - Rename
VerifiablePresentationParsed.verifiableCredentialstoVerifiablePresentationParsed.freshVerifiableCredentials - Rename
VerifiablePresentationParsed.revokedVerifiableCredentialstoVerifiablePresentationParsed.notVerifiablyFreshVerifiableCredentials - Remove
Validator.checkRevocationStatusin favor ofValidator.checkCredentialFreshness - Remove
Holder.StoredCredential.status - Remove
Verifier.VerifyCredentialResult.Revoked - Add constructor parameter
Validator.acceptedTokenStatusesto allow library client to define token statuses deemed valid
- Change
- Add support for Digital Credentials API as defined in OID4VP draft 28 and ISO 18013-7 Annex C:
- Implement
DCAPIRequestfor requests received via the Digital Credentials API, with implementations for OID4VP (Oid4vpDCAPIRequest), ISO 18013-7 Annex C (IsoMdocRequest) and a non-standardised preview protocol (PreviewDCAPIRequest) - New property of type
Oid4vpDCAPIRequestfor requests originating from the Digital Credentials API inAuthorizationResponsePreparationState - New parameter of type
Oid4vpDCAPIRequestfor requests originating from the Digital Credentials API inOpenId4VpHolder.parseAuthenticationRequestParameters,RequestParameters.extractAudiencePresentationFactory.createPresentationPresentationFactory.calcDeviceSignatureRequestParser.parseRequestParametersRequestParser.extractRequestObjectRequestParser.parseRequestObjectJwsRequestParser.matchRequestParameterCasesHolderAgent.getValidCredentialsByPriority - New optional parameter
filterByIdof typeStringinHolder.matchInputDescriptorsAgainstCredentialStore,HolderAgent.getValidCredentialsByPriorityHolderAgent.matchInputDescriptorsAgainstCredentialStoreHolderAgent.matchDCQLQueryAgainstCredentialStoreto filter credentials by id - New method
SubjectCredentialStore.getDcApiIdto generate an id of typeStringfor a credential - New optional property of type
DCAPIHandoverforSessionTranscript
- Implement
- Return member of interface
AuthenticationResultinstead ofAuthenticationSuccessas authorization response inOpenId4VpWallet. Can either beAuthenticationSuccess: contains aredirectUri(same behaviour as in 5.6.x)AuthenticationForward: contains theauthenticationResponseResultfor responses via the Digital Credentials API
- Refactoring of ISO data classes:
- Move data classes from
vcktoopenid-data-classes - Remove
serialize()anddeserialize()methods, please use the preferred serializer directly (e.g.vckCborSerializer) - List of classes moved:
ClientIdToHash,DeviceAuth,DeviceAuthentication,DeviceKeyInfo,DeviceRequest,DeviceSigned,DeviceSignedItemListSerializer,DeviceSignedList,DocRequest,ItemsRequest,IssuerSignedItem,IssuerSignedItemSerializer,IsserSignedList,IssuerSignedListSerializer,ItemsRequestList,ItemsRequestListSerializer,KeyAuthorization,NamespacedDeviceNameSpacesSerializer,NamespacedIssuerSignedListSerializer,ResponseUriToHash,ServerItemsRequest,ServerRequest,ServerResponse,SessionTranscript,SingleItemsRequest,ValidityInfo,ValueDigest,ValueDigestList,ValueDigestListSerializer
- Move data classes from
- Additional:
- Remove
Holder.StoredCredentialin favor ofSubjectCredentialStore.StoreEntry - Update AGP to 8.6.1 for composite builds with Valera
- Make
OAuth2Exceptionserializable - Add data class
LocalDateOrInstantto be used by credentials
- Remove
5.6.6
- OpenID for Verifiable Presentations:
- Fix applying presentation exchange filters to credentials (
arrayandobjectfilters)
- Fix applying presentation exchange filters to credentials (
- OpenID for Verifiable Credential Issuance:
- On issued SD-JWT VC do not validate subject but the confirmation claim
- Do not require
proof_typeinproofsin a credential request to be set
5.6.5
- OpenID for Verifiable Presentations:
- Change JSON Path serialization for claims to dot notation (for EUDIW reference implementation)
- Change
vctfilter to containconstinstead ofpattern(for EUDIW reference implementation) - Treat requested attributes as optional, if not explicitly set as required
- Treat selected submission from the user as valid, let verifier decide if submission shall be accepted