Attestation Provider test cases¶
Interaction¶
Engagement¶
WS_AP_IA_Engagement_007a¶
Objective¶
Verify that, for issuance via Redirects, the Wallet can be invoked through the haip-vci:// custom URL scheme, if supported by Wallet.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4.2
Profile applicability¶
Wallet supports invocation through the haip-vci:// custom URL scheme.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_optional
Technology¶
Issuance via Redirects. Wallet supports the Issuer initiated issuance flow.
Preconditions¶
- End-user is engaging with a Issuer using a User-agent.
Test Scenario¶
- Credential Issuer provides Credential Offer link to the User-agent using URL scheme
haip-vci://. Note: for engagement by presenting the link as QR-code for cross-device usage, additional security measures are recommended. - End-user triggers link to be followed (e.g. clicks button or link).
Expected results¶
- User-agent presents option to End-user to engage issuance.
- Wallet is invoked successfully.
WS_AP_IA_Engagement_007b¶
Objective¶
Verify that, for issuance via Redirects, the Wallet can be invoked through the eu-eaa-offer:// custom URL scheme.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_specific | EUDI_required
Technology¶
Wallet supports the Issuer initiated issuance flow.
Issuance via Redirects.
Wallet invocation uses the required custom URL scheme eu-eaa-offer://.
Preconditions¶
- End-user is engaging with a Issuer using a User-agent.
Test Scenario¶
- Credential Issuer provides Credential Offer link to the User-agent using URL scheme
eu-eaa-offer://. Note: for engagement by presenting the link as QR-code for cross-device usage, additional security measures are recommended. - End-user triggers link to be followed (e.g. clicks button or link).
Expected results¶
- User-agent presents option to End-user to engage issuance.
- Wallet is invoked successfully.
Main Interaction¶
WS_AP_IA_MainInteraction_010a¶
Objective¶
Verify that the Wallet sends an Authorization Request to the Authorization Server's Authorization Endpoint, after successfully pushing the Authorization Request (PAR).
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4
- [OpenID4VCI] section 5.1
- [RFC8414] section 2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects. Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained the Credential Issuer Metadata.
- Wallet successfully obtained the Authorization Server Metadata.
- Wallet successfully pushed an Authentication Request to the Authorization Server's
pushed_authorization_request_endpoint.
Test Scenario¶
- Verify the Authorization Request.
Expected results¶
- The Wallet sends a HTTP Request to the Authorization Endpoint of the Authorization Server as listed in the Credential Issuer Metadata. The HTTP Request:
- Uses the GET or POST method.
- Has the 'hostname', and 'port-number' if applicable, of the
authorization_endpointin the Authorization Server's Metadata. - Requests the 'path' and any 'query' component of the
authorization_endpoint, without a fragment component.
WS_AP_IA_MainInteraction_010b¶
Objective¶
Verify that the Wallet sends a reference to a Pushed Authorization Request to the Authorization Server's Authorization Endpoint, when requesting a Credential.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4
- [OpenID4VCI] section 5.1
- [RFC9126] section 4
- [RFC9101] section 5
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects. Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet successfully obtained the Authorization Server Metadata.
- Wallet successfully pushed an Authentication Request to the Authorization Server's
pushed_authorization_request_endpoint. - Wallet send an Authorization Request to the Authorization Server's
authorization_endpoint.
Test Scenario¶
- Verify the contents of the Authorization Request.
Expected results¶
- The Authorization Request includes a
request_uriparameter.
WS_AP_IA_MainInteraction_010c¶
Objective¶
Verify that the Wallet sends a reference to a successfully Pushed Authorization Request to the Authorization Server's Authorization Endpoint, when requesting a Credential.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4
- [OpenID4VCI] section 5.1
- [RFC9126] section 2.2, 4
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects. Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet successfully obtained the Authorization Server Metadata.
- Wallet successfully pushed an Authentication Request to the Authorization Server's
pushed_authorization_request_endpoint. - Wallet send an Authorization Request to the Authorization Server's
authorization_endpoint. - Wallet send a reference to a Pushed Authorization Request in the Authorization Request to the Authorization Server's Authorization Endpoint.
Test Scenario¶
- Verify the contents of the Authorization Request.
Expected results¶
- The value of the
request_uriis the same value as the value of the request_uri send in response to the Pushed Authentication Request submission, by the PAR endpoint of the Authorization Server.
WS_AP_IA_MainInteraction_030a¶
Objective¶
Verify that the Wallet sends a Credential Request using a HTTP Request to the Credential Endpoint of the Credential Issuer.
References¶
- [ETSI TS 119 472-3] section 4.6
- [HAIP] section 4
- [OpenID4VCI] section 8.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
OpenID4VCI Credential Endpoint requests.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet established a connection to the Credential Endpoint of the Credential Issuer, after receiving the Access Token from the Token Endpoint.
Test Scenario¶
- Verify the Credential Request.
Expected results¶
- The Wallet sends a HTTP Request to the Credential Endpoint of the Credential Issuer as listed in the Credential Issuer Metadata. The HTTP Request:
- Uses the POST method.
- Has the 'hostname', and 'port-number' if applicable, of the
credential_endpointin the Credential Issuer's Metadata. - Requests the 'path' and 'query', if applicable, of the
credential_endpoint, without a fragment part.
WS_AP_IA_MainInteraction_030b¶
Objective¶
Verify that the Wallet sends a Credential Request using a correctly formatted HTTP Request to the Credential Endpoint of the Credential Issuer.
References¶
- [ETSI TS 119 472-3] section 4.6
- [HAIP] section 4
- [OpenID4VCI] section 8.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
OpenID4VCI Credential Endpoint requests.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a HTTP Request to the Credential Endpoint.
Test Scenario¶
- Verify the header of the HTTP Request of the Credential Request.
- Perform all Shared_JSON test cases on the contents of the Body of the HTTP Request.
Expected results¶
- The Wallet sends a HTTP Request with a
Content-Typeheader with the valueapplication/json. -
All test cases pass.
- TODO Distinguish Credential Request encryption applicable or not?
WS_AP_IA_MainInteraction_031a¶
Objective¶
Verify that the Wallet handles a correct Credential Response.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4
- [OpenID4VCI] section 8.3
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
OpenID4VCI Credential Endpoint response handling.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully sent a valid Credential Request to the Credential Issuer.
Test Scenario¶
- Issuer responds with a valid Credential Response, including at least one valid Credential matching the requested Credential Type.
Expected results¶
- The Credential is stored in the wallet and available for the End-user to present to a Verifier. The End-user is informed the Credential is available, if applicable.
WS_AP_IA_MainInteraction_031b_UF¶
Objective¶
Verify that the Wallet treats a Credential Error Response containing credential_request_denied as unrecoverable.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4
- [OpenID4VCI] section 8.3.1.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
OpenID4VCI Credential Endpoint error-response handling.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully sent a valid Credential Request to the Credential Issuer.
Test Scenario¶
- The Issuer returns a valid Credential Error Response containing the error code
credential_request_denied.
Expected results¶
- The Wallet does not store any new Credential. The End-user is informed the Credential was not issued, if applicable. The Wallet aborts the issuance process and does not make any further requests as part of this issuance attempt.
Supportive Interaction¶
WS_AP_IA_Supportive_010a¶
Objective¶
Verify that the Wallet sends a Pushed Authorization Request (PAR) to the Authorization Server's Pushed Authentication Request Endpoint as a HTTP POST request to the endpoint.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects. Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained the Credential Issuer Metadata.
- Wallet successfully obtained the Authorization Server Metadata, including
pushed_authorization_request_endpoint.
Test Scenario¶
- End-user selects a Credential in the Wallet (based on
credential_configuration_idsand Credential Issuer Metadata) to obtain such Credential from the Credential Issuer.
Expected results¶
- Wallet connects to the Authorization Server's Pushed Authorization Request (PAR) Endpoint using TLS, making a HTTP request:
- Uses the POST method.
- Has the 'hostname', and 'port-number' if applicable, of the
pushed_authorization_request_endpointin the Authorization Server's Metadata. - Requests the 'path' of the
pushed_authorization_request_endpoint, without a query or fragment part.
WS_AP_IA_Supportive_011a¶
Objective¶
Verify that the Wallet can handle an correct response when submitting a Pushed Authorization Request (PAR) to the Authorization Server's Pushed Authentication Request Endpoint.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects. Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet successfully obtained the Authorization Server Metadata, including
pushed_authorization_request_endpoint. - The Wallet sent a valid Pushed Authorization Request to the Authorization Server's Pushed Authorization Request Endpoint.
Test Scenario¶
- Issuer responds with a valid PAR Response. That is a HTTP Response:
- with a HTTP Header
Content-Typewith valueapplication/json, containing: - with the HTTP Response Body in JSON format:
- contains a
request_uri - contains a
expires_in
- contains a
- with a HTTP Header
Expected results¶
- The subsequent Authorization Request sent through the User-agent contains the exact
request_urivalue returned by the Authorization Server.
WS_AP_IA_Supportive_011b_UF¶
Objective¶
Verify that the Wallet can handle an incorrect response when submitting a Pushed Authorization Request (PAR) to the Authorization Server's Pushed Authentication Request Endpoint, when the response is omitting a request_uri.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects. Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet successfully obtained the Authorization Server Metadata, including
pushed_authorization_request_endpoint. - The Wallet sent a valid Pushed Authorization Request to the Authorization Server's Pushed Authorization Request Endpoint.
Test Scenario¶
- Issuer responds with a invalid PAR Response, with the
response_uriomitted. That is a HTTP Response:- with a HTTP Header
Content-Typewith valueapplication/json, containing: - with the HTTP Response Body in JSON format:
- contains a
expires_in - omitting the
request_uri
- contains a
- with a HTTP Header
Expected results¶
- Wallet does not send an Authorization Request to the Authorizations Server's Authorization Endpoint, and informs the user ot cannot continue, if applicable.
Message Structure¶
Protocol Messages¶
WS_AP_MS_ProtocolMessages_033a¶
Objective¶
Verify that the Wallet can handle a correctly formatted Credential Offer, using the issuer initiated flow and credential offer by value.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4.2
- [OpenID4VCI] section 4.1
Profile applicability¶
Wallet supports the Issuer initiated issuance flow.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet can be invoked for issuance using the custom URL scheme
eu-eaa-offer://.
Test Scenario¶
- Credential Issuer provides a valid Credential Offer as parameter in a custom URL Scheme to the User-agent. The
credential_offerparameter:- has a
credential_issuerproperty with a valid issuer identifier. - has a
credential_configuration_idsproperty, as an array containing at least one identifier as string.
- has a
- End-user triggers link to be followed.
Expected results¶
- User-agent presents option to End-user to engage issuance, optionally after requesting the Credential Issuer Metadata (derived using
.well-knownfromcredential_issuer, if not cached already). - The Wallet connects to the Credential Issuer, to make a request at the Authorization Server's Authorization Endpoint.
WS_AP_MS_ProtocolMessages_033b_UF¶
Objective¶
Verify that the Wallet does not engage issuance based on a Credential Offer with the credential_issuer omitted, using the issuer initiated flow and credential offer by value.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4.2
- [OpenID4VCI] sections 4.1.1 and 12.2.2
Profile applicability¶
Wallet supports the Issuer initiated issuance flow.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Wallet supports invocation through the custom URL scheme eu-eaa-offer://.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet can be invoked for issuance using a custom URL scheme.
Test Scenario¶
- Credential Issuer provides a Credential Offer as parameter in a custom URL scheme to the User-agent. The
credential_offerparameter:- has no
credential_issuerproperty. - has a
credential_configuration_idsproperty, as an array containing at least one identifier as string.
- has no
- End-user triggers link to be followed.
Expected results¶
- User-agent presents option to End-user to engage issuance.
- The Wallet does not engage for issuance. This includes:
- The Wallet could inform the End-user about the incorrect engagement, if applicable.
- The Wallet does not connect to the Credential Issuer, for retrieving metadata. This includes not connecting to the Endpoint created by deriving from the URL where the User-agent was engaged (e.g. referrer or origin), by inserting
.well-known/openid-credential-issuer.
WS_AP_MS_ProtocolMessages_033c_UF¶
Objective¶
Verify that the Wallet does not engage issuance based on a Credential Offer with the credential_configuration_ids property omitted, using the issuer initiated flow and credential offer by value.
References¶
- [ETSI TS 119 472-3] section 4.1
- [HAIP] section 4.2
- [OpenID4VCI] section 4.1.1
Profile applicability¶
Wallet supports the Issuer initiated issuance flow.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Wallet supports invocation through the custom URL scheme eu-eaa-offer://.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet can be invoked for issuance using a custom URL scheme.
Test Scenario¶
- Credential Issuer provides a Credential Offer as parameter in a custom URL scheme to the User-agent. The
credential_offerparameter:- has a
credential_issuerproperty with a valid issuer identifier. - has no
credential_configuration_idsproperty.
- has a
- End-user triggers link to be followed.
Expected results¶
- User-agent presents option to End-user to engage issuance.
- The Wallet does not engage for issuance. This includes:
- The Wallet could inform the End-user about the incorrect engagement, if applicable.
WS_AP_MS_ProtocolMessages_034a¶
Objective¶
Verify that the Wallet sends the HTTP Request Body in the correct format when sending a Pushed Authorization Request, when using Pushed Authorization Requests for issuance.
References¶
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- The Wallet sends an HTTP POST Request to the selected Authorization Server's PAR endpoint.
Test Scenario¶
- Verify the
Content-Typeheader of the received HTTP Request.
Expected results¶
- The HTTP POST Request has the header
Content-Typewith valueapplication/x-www-form-urlencoded.
WS_AP_MS_ProtocolMessages_034b¶
Objective¶
Verify that the Wallet sends a HTTP Request that contains a request parameter when sending a Pushed Authorization Request, when using Pushed Authorization Requests for issuance.
References¶
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2
Profile applicability¶
Wallet that uses JAR during PAR for the Authorization Request to the Authorization Server on Credential Issuance.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- The Wallet sends an HTTP POST Request to the selected Authorization Server's PAR endpoint.
Test Scenario¶
- Verify the request parameters of the received HTTP Request.
Expected results¶
- The HTTP POST Request contains a parameter
request.
WS_AP_MS_ProtocolMessages_034c¶
Objective¶
Verify that the Wallet sends a request parameter in the HTTP request is a JWT (Signed Request Object) when sending a Pushed Authorization Request, when using Pushed Authorization Requests for issuance.
References¶
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 3
Profile applicability¶
Wallet that uses JAR during PAR for the Authorization Request to the Authorization Server on Credential Issuance.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- The Wallet sends an HTTP POST Request to the selected Authorization Server's PAR endpoint.
- The HTTP POST Request to the selected Authorization Server's PAR endpoint contains a
requestparameter.
Test Scenario¶
- Verify the
requestparameter in the received HTTP Request.
Expected results¶
- The value of the
requestparameter has the structure of a signed JWT in compact serialization, that is three base64url-encoded segments separated by two period (.) characters.
- Note: validation of the signed JWT itself as Authorization Request, is done in other test cases.
WS_AP_MS_ProtocolMessages_034d¶
Objective¶
Verify that the Wallet sends a request parameter in the HTTP request is a correctly formatted JWT (Signed Request Object) when sending a Pushed Authorization Request, when using Pushed Authorization Requests for issuance.
References¶
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 3
Profile applicability¶
Wallet that uses JAR during PAR for the Authorization Request to the Authorization Server on Credential Issuance.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- The Wallet sends an HTTP POST Request to the selected Authorization Server's PAR endpoint.
- The HTTP POST Request to the selected Authorization Server's PAR endpoint contains a
requestparameter. - The
requestparameter sent to the selected Authorization Server's PAR endpoint has the structure of a signed JWT.
Test Scenario¶
- Perform all Shared_JWT_JWS test cases on the value of the
requestparameter.
Expected results¶
- All test cases pass.
WS_AP_MS_ProtocolMessages_035a¶
Objective¶
Verify that the Wallet sends a HTTP Request that contains one OAuth-Client-Attestation HTTP header when sending a Pushed Authorization Request, when using Pushed Authorization Requests for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2.1
- [IETF draft-attestation-based-client-auth] section 6.1, 6.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- The Wallet sends an HTTP POST Request to the selected Authorization Server's PAR endpoint.
Test Scenario¶
- Verify the HTTP Headers of the received HTTP Request.
Expected results¶
- The HTTP Request contains exactly one HTTP header
OAuth-Client-Attestation.
WS_AP_MS_ProtocolMessages_035b¶
Objective¶
Verify that the Wallet sends a HTTP Request that contains a syntactically correct OAuth-Client-Attestation HTTP header when sending a Pushed Authorization Request, when using Pushed Authorization Requests for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2.1
- [IETF draft-attestation-based-client-auth] section 5.1, 6.1
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- The Wallet sends an HTTP POST Request to the selected Authorization Server's PAR endpoint.
- The HTTP Request to the selected Authorization Server's PAR endpoint contains an
OAuth-Client-AttestationHTTP header.
Test Scenario¶
- Verify the
OAuth-Client-AttestationHTTP-Header of the received HTTP Request.
Expected results¶
- The value of the
OAuth-Client-AttestationHTTP Header of the HTTP Request has the structure of a signed JWT in compact serialization, that is three Base64url-encoded parts separated by exactly two period (.) characters.
WS_AP_MS_ProtocolMessages_036a¶
Objective¶
Verify that the Wallet sends a HTTP Request that contains one OAuth-Client-Attestation-PoP HTTP header when sending a Pushed Authorization Request, when using Pushed Authorization Requests for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2.1
- [IETF draft-attestation-based-client-auth] section 6.1, 6.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- The Wallet sends an HTTP POST Request to the selected Authorization Server's PAR endpoint.
Test Scenario¶
- Verify the HTTP Headers of the received HTTP Request.
Expected results¶
- The HTTP Request contains exactly one HTTP header
OAuth-Client-Attestation-PoP.
WS_AP_MS_ProtocolMessages_036b¶
Objective¶
Verify that the Wallet sends a HTTP Request that contains a syntactically correct OAuth-Client-Attestation-PoP HTTP header when sending a Pushed Authorization Request, when using Pushed Authorization Requests for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4
- [RFC9126] section 2.1
- [IETF draft-attestation-based-client-auth] section 5.2, 6.1
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- The Wallet sends an HTTP POST Request to the selected Authorization Server's PAR endpoint.
- The HTTP Request to the selected Authorization Server's PAR endpoint contains an
OAuth-Client-Attestation-PoPHTTP header.
Test Scenario¶
- Verify the
OAuth-Client-Attestation-PoPHTTP-Header of the received HTTP Request.
Expected results¶
- The value of the
OAuth-Client-Attestation-PoPHTTP Header of the HTTP Request has the structure of a signed JWT in compact serialization, that is three Base64url-encoded parts separated by exactly two period (.) characters.
WS_AP_MS_ProtocolMessages_037a¶
Objective¶
Verify that the Wallet sends a syntactically correct body of the Wallet Instance Attestation as Client Attestation, when using Pushed Authorization Requests for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section E
- [IETF draft-attestation-based-client-auth] section 5.1
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_specific | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send a HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- Wallet send a correctly signed and trusted Wallet Instance Attestation as a Client Attestation.
Test Scenario¶
- Verify the contents of the Wallet Instance Attestation (i.e. the JWT body).
Expected results¶
- The WIA contains the following top-level claims:
wallet_namewallet_versionwallet_solution_certification_informationclient_statusexpwallet_linkisssubcnf- (optionally)
iat - (optionally)
nbf
WS_AP_MS_ProtocolMessages_037b¶
Objective¶
Verify that the Wallet sends a syntactically correct header of the Wallet Instance Attestation as Client Attestation, when using Pushed Authorization Requests for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section E
- [RFC9126] section 2.1
- [IETF draft-attestation-based-client-auth] section 5.1
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send a HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- Wallet send a correctly signed and trusted Wallet Instance Attestation as Client Attestation.
Test Scenario¶
- Verify the header of the Wallet Instance Attestation (i.e. the JWT header).
Expected results¶
- The WIA JOSE header contains the required
typheader parameter.
WS_AP_MS_ProtocolMessages_037c¶
Objective¶
Verify that the Wallet sends a correct typ header of the Wallet Instance Attestation as Client Attestation, when using Pushed Authorization Requests for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section E
- [RFC9126] section 2.1
- [IETF draft-attestation-based-client-auth] section 5.1
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send a HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- Wallet send a correctly signed and trusted Wallet Instance Attestation as a Client Attestation.
- Wallet send a syntactically correct header of the Wallet Instance Attestation as Client Attestation.
Test Scenario¶
- Verify the
typJOSE header of the Wallet Instance Attestation (i.e. in the JWT header).
Expected results¶
- The value of the
typheader of the WIA has the valueoauth-client-attestation+jwt.
WS_AP_MS_ProtocolMessages_038a¶
Objective¶
Verify that the Wallet sends a syntactically correct Wallet Instance Attestation Proof of Possesion, when using Pushed Authorization Requests for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section E
- [RFC9126] section 2.1
- [IETF draft-attestation-based-client-auth] section 5.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send a HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- Wallet send a correctly signed and trusted Wallet Instance Attestation as a Client Attestation.
Test Scenario¶
- Verify the claims set in the Wallet Instance Attestation Proof of Possession JWT.
Expected results¶
- The Proof of Possession contains the following top-level claims:
issaudjtiiat- (optionally)
challenge - (optionally)
nbf
WS_AP_MS_ProtocolMessages_039a¶
Objective¶
Verify that the Wallet sends a syntactically correct Authorization Request to the Authorization Endpoint, when authentication to a Authorization Server for requesting issuance of a Credential.
References¶
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.2, 5.1.3
- [RFC9126] section 4
- [RFC9101] section 5.2.2
- [RFC6749] section 4.1.1
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send a valid and trusted PAR request the Authorization Server's PAR Endpoint.
- Wallet send a Authorization Request to the Authorization Server's Authorization Endpoint.
Test Scenario¶
- Verify the Authorization Request.
Expected results¶
- The Authorization Request contains the following top-level request parameters:
request_uriclient_id
WS_AP_MS_ProtocolMessages_039b¶
Objective¶
Verify that the Wallet sends a syntactically correct request_uri parameter in the Authorization Request to the Authorization Endpoint, when authentication to a Authorization Server for requesting issuance of a Credential.
References¶
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.2, 5.1.3
- [RFC9126] section 4
- [RFC9101] section 5, 5.2.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send a valid and trusted PAR request the Authorization Server's PAR Endpoint.
- Wallet send a Authorization Request to the Authorization Server's Authorization Endpoint.
Test Scenario¶
- Verify the
request_uriparameter of the Authorization Request.
Expected results¶
- The value of the
request_uriparameter of the Authorization Request is a syntactically correct formatted URI.
WS_AP_MS_ProtocolMessages_040a¶
Objective¶
Verify that the Wallet sends a syntactically correct Pushed Authorization Request, when authentication to a Authorization Server for requesting issuance of a Credential.
References¶
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.2, 5.1.3
- [RFC6749] section 4.1.1
- [RFC7636] section 4.3
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send a valid and trusted PAR request the Authorization Server's PAR Endpoint.
- Wallet send a valid Authorization Request to the Authorization Server's Authorization Endpoint.
Test Scenario¶
- Verify the Pushed Authorization Request.
Expected results¶
- The Pushed Authorization Request contains the following top-level request parameters:
scoperesponse_typeclient_idredirect_uricode_challengecode_challenge_method- (optionally)
issuer_state - (optionally)
resource
WS_AP_MS_ProtocolMessages_040b¶
Objective¶
Verify that the Wallet sends a correct Pushed Authorization Request, when authentication to a Authorization Server for requesting issuance of a Credential.
References¶
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- End-user is engaging with a Credential Issuer using a User-agent.
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send a valid and trusted PAR request the Authorization Server's PAR Endpoint.
- Wallet send a valid Authorization Request to the Authorization Server's Authorization Endpoint.
- Wallet send a syntactically correct Authorization Request Request Object.
Test Scenario¶
- Verify the
scopeparameter in the Pushed Authorization Request.
Expected results¶
-
The value of the
scopeparameter matches with one or more values, with whitespace(s) as separator, where each value matches ascopeof acredential_configurations_supportedof the Credential Issuer as stated in the Credential Issuer's metadata.- NOTE: this assumes the Credential Issuer's Metadata does include a unique
scopefor each supported Credential Configuration.
- NOTE: this assumes the Credential Issuer's Metadata does include a unique
WS_AP_MS_ProtocolMessages_050a¶
Objective¶
Verify that the Wallet sends a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer, when requesting issuance of a Credential with Key Binding.
References¶
- [ETSI TS 119 472-3] section 4.6
- [HAIP] section 4.5
- [OpenID4VCI] section 8.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- The Wallet obtained an Access Token from a Token Response that did not return
credential_identifiers. - Wallet send a correctly formatted HTTP Request to the Credential Endpoint.
Test Scenario¶
- Verify the presence of parameters in the HTTP Request send to the Credential Endpoint.
Expected results¶
- The HTTP Request contains the following parameters:
credential_identifieris absentcredential_configuration_idis presentproofsis present- (optionally)
credential_response_encryptioncan be present
Comments¶
- HAIP requires the
scopeAuthorization parameter; under OpenID4VCI 8.2, the Credential Request usescredential_configuration_idonly when the Token Response did not returncredential_identifiers.
WS_AP_MS_ProtocolMessages_050b¶
Objective¶
Verify that the Wallet sends a syntactically correct credential_configuration_id parameter in the Credential Request to the Credential Endpoint of the Credential Issuer, when requesting issuance of a Credential with Key Binding.
References¶
- [ETSI TS 119 472-3] section 4.6
- [HAIP] section 4.5
- [OpenID4VCI] section 8.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet obtained an Access Token from a Token Response that did not return
credential_identifiers. - Wallet send a HTTP Request to the Credential Endpoint.
- Wallet send a Credential Request containing the
credential_configuration_idparameter to the Credential Endpoint.
Test Scenario¶
- Verify the
credential_configuration_idparameter in the HTTP Request send to the Credential Endpoint.
Expected results¶
- The
credential_configuration_idparameter in the HTTP Request is a string.
WS_AP_MS_ProtocolMessages_050c¶
Objective¶
Verify that the Wallet sends a correct credential_configuration_id parameter in the Credential Request to the Credential Endpoint of the Credential Issuer, when requesting issuance of a Credential with Key Binding.
References¶
- [ETSI TS 119 472-3] section 4.6
- [HAIP] section 4.5
- [OpenID4VCI] section 8.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet obtained an Access Token from a Token Response that did not return
credential_identifiers. - Wallet send a HTTP Request to the Credential Endpoint
- Wallet send a Credential Request containing a syntactically correct
credential_configuration_idparameter to the Credential Endpoint.
Test Scenario¶
- Verify the
credential_configuration_idparameter in the HTTP Request send to the Credential Endpoint.
Expected results¶
- The
credential_configuration_idvalue identifies a key in thecredential_configurations_supportedmap whose corresponding configuration contains a scope value used in the Authorization Request.
WS_AP_MS_ProtocolMessages_050d¶
Objective¶
Verify that the Wallet sends a correctly formatted proofs parameter in the Credential Request to the Credential Endpoint of the Credential Issuer, when requesting issuance of a Credential with Key Binding.
References¶
- [ETSI TS 119 472-3] section 4.6
- [HAIP] section 4.5
- [OpenID4VCI] section 8.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a HTTP Request to the Credential Endpoint.
- Wallet send a Credential Request containing the
proofsparameter to the Credential Endpoint.
Test Scenario¶
- Verify the
proofsparameter in the HTTP Request send to the Credential Endpoint.
Expected results¶
- The
proofsparameter in the HTTP Request is a JSON object.
WS_AP_MS_ProtocolMessages_050e¶
Objective¶
Verify that the Wallet sends a syntactically correct proofs parameter in the Credential Request to the Credential Endpoint of the Credential Issuer, when requesting issuance of a Credential with Key Binding.
References¶
- [ETSI TS 119 472-3] section 4.6.1
- [HAIP] section 4.5.1
- [OpenID4VCI] section 8.2, F
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Issuance via Redirects.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a HTTP Request to the Credential Endpoint.
- Wallet send a Credential Request a containing syntactically correct
proofsparameter to the Credential Endpoint.
Test Scenario¶
- Verify the presence of properties in the
proofsparameter in the HTTP Request send to the Credential Endpoint.
Expected results¶
- The
proofsparameter in the HTTP Request contains either ajwtorattestationproperty, not both.
WS_AP_MS_ProtocolMessages_051a¶
Objective¶
Verify that the Wallet sends a jwt in the proofs in the Credential Request to the Credential Endpoint of a Credential Issuer, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1
- [HAIP] section 4.5.1
- [OpenID4VCI] section 8.2, F.1
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a syntactically correct
proofsparameter in the Credential Request.
Test Scenario¶
- Verify the contents of the
proofsparameter in the Credential Request.
Expected results¶
- The
proofsparameter contains ajwtproperty that is an array.
WS_AP_MS_ProtocolMessages_051b¶
Objective¶
Verify that the Wallet sends a correctly formatted jwt in the proofs in the Credential Request to the Credential Endpoint of a Credential Issuer, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section 8.2, F.1
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a syntactically correct
proofsparameter in the Credential Request. - Wallet send a
jwtproperty in theproofsparameter of the Credential Request.
Test Scenario¶
- Verify the
jwtproperty of theproofsparameter in the Credential Request.
Expected results¶
- The
jwtparameter is an array of one element.
WS_AP_MS_ProtocolMessages_051c¶
Objective¶
Verify that the Wallet correctly formatted value(s) for the jwt parameter in the Credential Request to the Credential Endpoint of a Credential Issuer, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section 8.2, F.1
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a syntactically correct
proofsparameter in the Credential Request. - Wallet send a correctly formatted
jwtproperty in theproofsparameter of the Credential Request.
Test Scenario¶
- Verify the element(s) of the
jwtproperty of theproofsparameter in the Credential Request.
Expected results¶
- Any element in the
jwtparameter is a string.
WS_AP_MS_ProtocolMessages_052a¶
Objective¶
Verify that the Wallet sends a syntactically correct header of the proof with Key Attestation in the Credential Request, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
- [RFC7515] section 4
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a valid signed proof with Key Attestation in the Credential Request.
Test Scenario¶
- Verify the presence of parameters in the header of the proof with Key Attestation.
Expected results¶
- The presence of parameters in the header of the proof with Key Attestation is as follows:
algis present.typis present.- (optionally)
kidcan be present. - (optionally)
jwkcan be present. key_attestationis present.- (optionally)
x5ccan be present. - (optionally)
trust_chaincan be present.
WS_AP_MS_ProtocolMessages_052b¶
Objective¶
Verify that the Wallet sends a correctly formatted typ header of the proof with Key Attestation in the Credential Request, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
- [RFC7515] section 4
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a valid signed proof with Key Attestation in the Credential Request.
- The proof with Key Attestation contains a
typheader.
Test Scenario¶
- Verify the
typheader of the proof with Key Attestation.
Expected results¶
- The value of the
typheader is a string.
WS_AP_MS_ProtocolMessages_052c¶
Objective¶
Verify that the Wallet sends a correct typ header of the proof with Key Attestation in the Credential Request, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
- [RFC7515] section 4.1.9
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a valid signed proof with Key Attestation in the Credential Request.
- The proof with Key Attestation contains a syntactically correct
typheader.
Test Scenario¶
- Verify the
typheader of the proof with Key Attestation.
Expected results¶
- The value of the
typheader isopenid4vci-proof+jwt.
WS_AP_MS_ProtocolMessages_053a¶
Objective¶
Verify that the Wallet sends a syntactically correct body of the proof with Key Attestation in the Credential Request, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
- [RFC7519] section 4
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a valid signed proof with Key Attestation in the Credential Request.
Test Scenario¶
- Verify the presence of parameters in the body of the proof with Key Attestation.
Expected results¶
- The presence of parameters in the body of the proof with Key Attestation is as follows:
- (optionally)
isscan be present. audis present.iatis present.nonceis present.
- (optionally)
WS_AP_MS_ProtocolMessages_053b¶
Objective¶
Verify that the Wallet sends a correctly formatted aud claim in the proof with Key Attestation in the Credential Request, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
- [RFC7519] section 4
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a valid signed proof with Key Attestation in the Credential Request.
- the proof with Key Attestation contains a
audclaim.
Test Scenario¶
- Verify the
audclaim in the proof with Key Attestation.
Expected results¶
- The value of the
audclaim is a string.
WS_AP_MS_ProtocolMessages_053c¶
Objective¶
Verify that the Wallet sends a correctly formatted aud claim in the proof with Key Attestation in the Credential Request, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
- [RFC7519] section 4
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a valid signed proof with Key Attestation in the Credential Request.
- The proof with Key Attestation contains a syntactically correct
audclaim.
Test Scenario¶
- Verify the
audclaim in the proof with Key Attestation.
Expected results¶
- The value of the
audclaim is equal to the Credential Issuer Identifier.
WS_AP_MS_ProtocolMessages_053d¶
Objective¶
Verify that the Wallet sends a correctly formatted nonce claim in the proof with Key Attestation in the Credential Request, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
- [RFC7519] section 4
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a valid signed proof with Key Attestation in the Credential Request.
- the proof with Key Attestation contains a
nonceclaim.
Test Scenario¶
- Verify the
nonceclaim in the proof with Key Attestation.
Expected results¶
- The value of the
nonceclaim is a string.
Security Mechanisms¶
Device Binding¶
WS_AP_SM_DeviceBinding_001a¶
Objective¶
Verify that the Wallet correctly serializes the Client Attestation as a signed JWT to authenticate at the PAR Endpoint of the selected Authorization Server, when using Pushed Authentication Requests in the Authorization Code Flow for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4, E
- [IETF draft-attestation-based-client-auth] section 5.1
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send an HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the Authorization Server.
- The HTTP Request to the PAR Endpoint of the Authorization Server contains a syntactically correct
OAuth-Client-AttestationHTTP header.
Test Scenario¶
- For the value of the
OAuth-Client-AttestationHTTP Header in the HTTP request, perform all Shared_JWT_JWE test cases.
Expected results¶
- All test cases pass.
WS_AP_SM_DeviceBinding_001b¶
Objective¶
Verify that the Wallet correctly serializes the Client Attestation Proof of Possession as a signed JWT to authenticate at the PAR Endpoint of the Authorization Server, when using Pushed Authentication Requests in the Authorization Code Flow for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4, E
- [IETF draft-attestation-based-client-auth] section 5.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send an HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- The HTTP Request to the PAR Endpoint of the Authorization Server contains a syntactically correct
OAuth-Client-Attestation-PoPHTTP Header.
Test Scenario¶
- For the value of the
OAuth-Client-Attestation-PoPHTTP Header in the HTTP request, perform all Shared_JWT_JWE test cases.
Expected results¶
- All test cases pass.
WS_AP_SM_DeviceBinding_002a¶
Objective¶
Verify that the Wallet Provider uses an acceptable signature algorithm for signing the Client Attestation used by the Wallet to authenticate at the PAR Endpoint of the Authorization Server, when using Pushed Authentication Requests in the Authorization Code Flow for issuance.
References¶
- [CIR 2024/2979 amended] annex Ia, Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4, E
- [IETF draft-attestation-based-client-auth] section 5.1
- [ECCG ACM] section 5.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send an HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- The HTTP Request to the PAR Endpoint of the Authorization Server contains a syntactically correct
OAuth-Client-AttestationHTTP header. - The Client Attestation used by the Wallet to authenticate to the PAR Endpoint is a correctly serialized signed JWT.
Test Scenario¶
- Verify the signature algorithm (
algin protected header) used for signing the Client Attestation.
Expected results¶
- The signature algorithm in
alg:- is on the list of acceptable algorithms [ECCG ACM], and
- is one of
ES256,ES384, orES512.
WS_AP_SM_DeviceBinding_002b¶
Objective¶
Verify that the Wallet Provider correctly signs the Client Attestation used by the Wallet to authenticate at the PAR Endpoint of the Authorization Server, when using Pushed Authentication Requests in the Authorization Code Flow for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3, 4.4.1
- [OpenID4VCI] section 5.1.4, E
- [IETF draft-attestation-based-client-auth] section 5.1
- [ECCG ACM] section 5.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send an HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- The HTTP Request to the PAR Endpoint of the Authorization Server contains a syntactically correct
OAuth-Client-AttestationHTTP header. - The Client Attestation used by the Wallet to authenticate to the PAR Endpoint is a correctly serialized signed JWT.
- The Client Attestation uses an acceptable signature algorithm.
Test Scenario¶
- Verify the signature of the Client Attestation, using the public key identified using the
x5cJOSE header.
Expected results¶
- The signature is valid.
WS_AP_SM_DeviceBinding_003a¶
Objective¶
Verify that the Wallet uses an acceptable signature algorithm for signing the Client Attestation Proof of Possession used by the Wallet to authenticate at the PAR Endpoint of the Authorization Server, when using Pushed Authentication Requests in the Authorization Code Flow for issuance.
References¶
- [CIR 2024/2979 amended] annex Ia, Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4, E
- [IETF draft-attestation-based-client-auth] section 5.2
- [ECCG ACM] section 5.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send an HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- The HTTP Request to the PAR Endpoint of the Authorization Server contains a syntactically correct
OAuth-Client-Attestation-PoPHTTP header. - The Client Attestation Proof of Possession used to authenticate to the PAR Endpoint is a correctly serialized signed JWT.
Test Scenario¶
- Verify the signature algorithm (
algin protected header) used for signing the Client Attestation Proof of Possession.
Expected results¶
- The signature algorithm in
alg:- is on the list of acceptable algorithms [ECCG ACM], and
- is one of
ES256,ES384, orES512.
WS_AP_SM_DeviceBinding_003b¶
Objective¶
Verify that the Wallet correctly signs the Client Attestation Proof of Possession used to authenticate at the PAR Endpoint of the Authorization Server, when using Pushed Authentication Requests in the Authorization Code Flow for issuance.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.4
- [HAIP] section 4.3
- [OpenID4VCI] section 5.1.4, E
- [IETF draft-attestation-based-client-auth] section 5.1
- [ECCG ACM] section 5.2
Profile applicability¶
None
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential Issuance using the Authorization Code Flow.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata.
- Wallet send an HTTP POST Request for a Pushed Authorization Request to the PAR Endpoint of the selected Authorization Server.
- The HTTP Request to the PAR Endpoint of the Authorization Server contains a syntactically correct
OAuth-Client-Attestation-PoPHTTP header. - The Client Attestation Proof of Possession used to authenticate to the PAR Endpoint is a correctly serialized signed JWT.
- The Client Attestation Proof of Possession uses an acceptable signature algorithm.
Test Scenario¶
- Verify the signature of the Client Attestation Proof of Possession, using the public key from the
cnfclaim in the Client Attestation.
Expected results¶
- The signature is valid.
WS_AP_SM_DeviceBinding_010a¶
Objective¶
Verify that the Wallet sends a correctly serialized JWT as proof with Key Attestation in the Credential Request to the Credential Endpoint of a Credential Issuer, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1
- [HAIP] section 4.5.1
- [OpenID4VCI] section 8.2, F.1
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a syntactically correct
proofsparameter in the Credential Request. - Wallet send a JWT as value of the
jwtproperty in theproofsparameter of the Credential Request.
Test Scenario¶
- Perform all Shared_JWT_JWS test cases on the value of the
jwtproperty of theproofsparameter in the Credential Request.
Expected results¶
- All test cases pass.
WS_AP_SM_DeviceBinding_010b¶
Objective¶
Verify that the Wallet uses an acceptable algorithm for signing the proof with Key Attestation in the Credential Request to the Credential Endpoint of a Credential Issuer, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ia, Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section 8.2, F.1
- [ECCG ACM] section 5.2
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_specific | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a syntactically correct
proofsparameter in the Credential Request. - Wallet send a correctly serialized JWT as proof with Key Attestation in the Credential Request.
Test Scenario¶
- Verify the signature algorithm (
algin protected header) used for signing the proof with Key Attestation.
Expected results¶
- The signature algorithm in
alg:- is on the list of acceptable algorithms [ECCG ACM], and
- is one of
ES256,ES384, orES512.
Comments¶
TODO consider proof_signing_alg_values_supported as well!
WS_AP_SM_DeviceBinding_010c¶
Objective¶
Verify that the Wallet uses a valid signature value for signing the proof with Key Attestation in the Credential Request to the Credential Endpoint of a Credential Issuer, when the jwt Proof Type is used.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section 8.2, F.1
- [ECCG ACM] section 5.2
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_generic | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a syntactically correct
proofsparameter in the Credential Request. - Wallet send a JWT as value of the
jwtproperty in theproofsparameter of the Credential Request. - The proof with Key Attestation uses an acceptable signature algorithm.
Test Scenario¶
- Verify the signature value of the proof with Key Attestation, using the public key in the first element in
attested_keysinkey_attestation.
Expected results¶
- The signature is valid.
WS_AP_SM_DeviceBinding_011a¶
Objective¶
Verify that the Wallet Provider signs the Key Attestation using an acceptable signature algorithm, when the Wallet uses the jwt Proof Type.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_specific | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a syntactically correct
proofsparameter in the Credential Request. - Wallet send a valid signed JWT as value of the
jwtproperty in theproofsparameter of the Credential Request.
Test Scenario¶
- Verify the signature algorithm (
algin protected header) used for signing the Key Attestation.
Expected results¶
- The signature algorithm in
alg:- is on the list of acceptable algorithms [ECCG ACM], and
- is one of
ES256,ES384, orES512.
WS_AP_SM_DeviceBinding_011b¶
Objective¶
Verify that the Wallet Provider signs the Key Attestation with a valid signature value, when the Wallet uses the jwt Proof Type.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section F.1
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_specific | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet send a syntactically correct Credential Request to the Credential Endpoint of the Credential Issuer.
- Wallet send a syntactically correct
proofsparameter in the Credential Request. - Wallet send a valid signed JWT as value of the
jwtproperty in theproofsparameter of the Credential Request. - The Key Attestation in the
jwtproof type is signed using an acceptable signature algorithm.
Test Scenario¶
- Verify the signature value of the Key Attestation, using the public key in the
x5cJOSE header.
Expected results¶
- The signature is valid.
WS_AP_SM_DeviceBinding_012a¶
Objective¶
Verify that the Wallet uses the nonce from the Nonce Endpoint of the Credential Issuer to include a nonce in the proof of Key Attestation, when the Wallet uses the jwt Proof Type.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.2
- [HAIP] section 4.5.1
- [OpenID4VCI] section 7, 8.2, F.1
Profile applicability¶
Wallet uses the jwt proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_specific | EUDI_required
Technology¶
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata, including the
nonce_endpointof the Credential Issuer. - Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained a value in
c_noncein the Nonce Response, by making a Nonce Request to the Nonce Endpoint of the Credential Issuer. - Wallet send a valid and trusted signed JWT as proof of Key Attestation, with the Credential Request.
- Wallet send a syntactically correct
noncein the proof of Key Attestation.
Test Scenario¶
- Verify the
noncevalue in the proof of Key Attestation.
Expected results¶
- The value of the
noncein the signed JWT that makes the proof of Key Attestation, is equal to the value of thec_nonceprovided in the Nonce Response from the Nonce Endpoint.
WS_AP_SM_DeviceBinding_013a¶
Objective¶
Verify that the Wallet uses the nonce from the Nonce Endpoint of the Credential Issuer to include a nonce in the Key Attestation, when the Wallet uses the attestation Proof Type.
References¶
- [CIR 2024/2979 amended] annex Ib
- [ETSI TS 119 472-3] section 4.6.1.3
- [HAIP] section 4.5.1
- [OpenID4VCI] section 7, 8.2, F.3
Profile applicability¶
Wallet uses the attestation proof type to convey a key attestation in Credential Requests.
EUDI-wallet relevancy¶
EUDI_specific | EUDI_required
Technology¶
Credential with Key Binding.
Preconditions¶
- Wallet is set to 'default_configuration_1'
- Wallet started engagement with Credential Issuer.
- Wallet successfully obtained Credential Issuer Metadata, including the
nonce_endpointof the Credential Issuer. - Wallet successfully authenticated to the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained an Access Token from the Token Endpoint of the (Authorization Server of the) Credential Issuer.
- Wallet successfully obtained a value in
c_noncein the Nonce Response, by making a Nonce Request to the Nonce Endpoint of the Credential Issuer. - Wallet send a valid and trusted signed attestation as Key Attestation, with the Credential Request.
- Wallet send a syntactically correct
noncein the Key Attestation.
Test Scenario¶
- Verify the
noncevalue in the Key Attestation.
Expected results¶
- The value of the
noncein the signed attestation that makes the Key Attestation, is equal to the value of thec_nonceprovided in the Nonce Response from the Nonce Endpoint.