| Test Name | oid4vp-1final-verifier-happy-flow |
|---|---|
| Variant | credential_format=sd_jwt_vc, client_id_prefix=x509_hash, request_method=request_uri_signed, vp_profile=plain_vp, response_mode=direct_post.jwt |
| Test ID | KosEwNw5dCtphwu https://localhost.emobix.co.uk:8443/log-detail.html?public=true&log=KosEwNw5dCtphwu |
| Created | 2026-11-03T06:15:36.755372573Z |
| Description | OID4VP verifier/RP conformance test for SIROS VC verifier |
| Test Version | 5.3.4 |
| Test Owner | developer https://developer.com |
| Plan ID | CfWj2Y6PJkZdX https://localhost.emobix.co.uk:8443/plan-detail.html?public=true&plan=CfWj2Y6PJkZdX |
| Exported From | https://localhost.emobix.co.uk:8443 |
| Exported By | developer https://developer.com |
| Suite Version | 5.3.4 |
| Exported | 2026-11-03 06:16:22 (UTC) |
| Status: FINISHED Result: REVIEW |
| SUCCESS 63 FAILURE 0 WARNING 0 REVIEW 1 INFO 15 |
| 2026-11-03 06:15:36 |
INFO
|
TEST-RUNNER
Test instance KosEwNw5dCtphwu created
|
||||||||||||||||
|
||||||||||||||||||
| 2026-11-03 06:15:36 |
SUCCESS
|
OIDCCGenerateServerConfiguration
Generated default server configuration
|
||
|
||||
| 2026-11-03 06:15:36 |
SetRequestUriParameterSupportedToTrueInServerConfiguration
Enabled request_uri support in server configuration
|
|||
|
||||
| 2026-11-03 06:15:36 |
|
RegisterClientRequestObjectTrustAnchor
No client request object trust anchor configured, skipping registration
|
|
|
||
| 2026-11-03 06:15:36 |
|
RegisterRical
No RICAL configured, skipping RICAL-based verifier trust checks
|
|
|
||
| 2026-11-03 06:15:36 | INFO |
CallRicalEndpoint
Skipped evaluation due to missing required string: rical_url
|
||
|
||||
| 2026-11-03 06:15:36 | INFO |
ParseRical
Skipped evaluation due to missing required object: rical
|
||||
|
||||||
| 2026-11-03 06:15:36 |
INFO
|
DumpRicalCborDiagnostics
Skipped evaluation due to missing required object: rical
|
||||
|
||||||
| 2026-11-03 06:15:36 | INFO |
ValidateRicalSignature
Skipped evaluation due to missing required object: rical
|
||||
|
||||||
| 2026-11-03 06:15:36 | INFO |
ValidateRicalSignerCertificate
Skipped evaluation due to missing required object: rical
|
||||
|
||||||
| 2026-11-03 06:15:36 | INFO |
ValidateRicalStructure
Skipped evaluation due to missing required object: rical
|
||||
|
||||||
| 2026-11-03 06:15:36 |
|
oid4vp-1final-verifier-happy-flow
Setup Done
|
|
|
||
| 2026-11-03 06:15:47 |
INCOMING
|
oid4vp-1final-verifier-happy-flow
Incoming HTTP request to /test/a/siros-verifier-vp-test/authorize
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Authorization endpoint |
| 2026-11-03 06:15:47 |
FetchRequestUriAndExtractRequestObject
Fetching request object from request_uri
|
|||
|
||||
| 2026-11-03 06:15:47 |
|
FetchRequestUriAndExtractRequestObject
HTTP request
|
||||||||
|
||||||||||
| 2026-11-03 06:15:47 |
RESPONSE
|
FetchRequestUriAndExtractRequestObject
HTTP response
|
||||||||
|
||||||||||
| 2026-11-03 06:15:47 |
FetchRequestUriAndExtractRequestObject
Downloaded request object
|
|||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
FetchRequestUriAndExtractRequestObject
Parsed request object
|
||||||
|
||||||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureRequestUriIsHttps
request_uri is a https url
|
||
|
||||
| 2026-11-03 06:15:47 |
SUCCESS
|
EnsureRequestUriHasNoFragment
request_uri does not contain a fragment
|
||
|
||||
| 2026-11-03 06:15:47 |
SUCCESS
|
ExtractAndValidateX509HashClientId
Client ID matched
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateRequestObjectTypIsOAuthQauthReqJwt
Request object typ header is valid
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
OIDCCValidateRequestObjectExp
Request object contains a valid exp claim, expiry time
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateRequestObjectIat
iat claim is valid
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureNumericRequestObjectClaimsAreNotNull
None of the claims expected to have numeric values, have null values
|
||
|
||||
| 2026-11-03 06:15:47 |
ValidateRequestObjectMaxAge
Request object does not contain a max_age claim
|
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureRequestObjectDoesNotContainRequestOrRequestUri
Request object does not contain request or request_uri
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureRequestObjectDoesNotContainSubWithClientId
Request object does not contain Client Id in sub
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateRequestObjectIssIfPresent
Request object does not contain an 'iss' claim, which is permitted by the spec
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateRequestObjectAudForVP
Request object aud claim is valid
|
||||||
|
||||||||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateRequestObjectSignatureAgainstX5cHeader
Request object x5c chain validated and signature verified
|
||||||
|
||||||||
| 2026-11-03 06:15:47 | INFO |
ValidateRequestObjectX5cChainAgainstRical
Skipped evaluation due to missing required object: rical
|
||||
|
||||||
| 2026-11-03 06:15:47 | INFO |
EnsureMatchedRicalEntryHasNoTrustConstraints
Skipped evaluation due to missing required object: rical
|
||||
|
||||||
| 2026-11-03 06:15:47 |
SUCCESS
|
EnsureClientIdInAuthorizationRequestParametersMatchRequestObject
client_id http request parameter value matches client_id in request object
|
|
|
||
| 2026-11-03 06:15:47 | INFO |
ValidateEncryptedRequestObjectHasKid
Skipped evaluation due to missing required element: authorization_request_object jwe_header
|
||||||
|
||||||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureOptionalAuthorizationRequestParametersMatchRequestObject
All http request parameters and request object claims match
|
|
|
||
| 2026-11-03 06:15:47 |
SUCCESS
|
CheckForUnexpectedParametersInVpAuthorizationEndpointHttpRequest
All HTTP authorization request parameters are expected
|
||||
|
||||||
| 2026-11-03 06:15:47 | SUCCESS |
CreateEffectiveAuthorizationRequestParameters
Merged http request parameters with request object claims
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
ExtractNonceFromAuthorizationRequest
Extracted nonce
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
CheckForInvalidCharsInNonce
Nonce contains only URL safe characters
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalCheckNonceMinimumLength
Nonce is at least 16 characters. Section 5.2 of OID4VP 1.0 Final does not impose a minimum length; this check flags obviously-too-short nonces that cannot plausibly satisfy the spec's "sufficient entropy" requirement.
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalCheckNonceMaximumLength
Nonce does not exceed 43 characters. Section 5.2 of OID4VP 1.0 Final requires the nonce to be a "fresh, cryptographically random number with sufficient entropy" but does not specify its length. To promote interoperability we expect nonces no longer than 43 characters (the longest the conformance suite itself generates as a verifier when testing a wallet); longer values may not be accepted by all wallets.
|
||||
|
||||||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalEnsureMinimumNonceEntropy
Nonce appears to have sufficient entropy. Section 5.2 of OID4VP 1.0 Final requires the nonce to be a "fresh, cryptographically random number with sufficient entropy"; OpenID4VP PR #722 (https://github.com/openid/OpenID4VP/pull/722/changes) recommends at least 128 bits.
|
||||||
|
||||||||
| 2026-11-03 06:15:47 | INFO |
EnsureAuthorizationRequestContainsPkceCodeChallenge
Skipped evaluation due to missing required element: effective_authorization_endpoint_request code_challenge
|
||||||
|
||||||||
| 2026-11-03 06:15:47 |
SUCCESS
|
EnsureResponseTypeIsVpToken
Response type is expected value
|
||
|
||||
| 2026-11-03 06:15:47 |
SUCCESS
|
ValidateResponseMode
response_mode is direct_post.jwt
|
|
|
||
| 2026-11-03 06:15:47 |
SUCCESS
|
CheckNoClientIdSchemeParameter
client_id_scheme parameter is not present, as expected.
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
CheckNoScopeParameter
scope parameter is not present, as expected.
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
CheckRequestUriMethodParameter
request_uri_method is 'post'
|
|
|
||
| 2026-11-03 06:15:47 | INFO |
WarnIfRequestUriMethodInRequestObject
Skipped evaluation due to missing required string: authorization_request_object
|
||
|
||||
| 2026-11-03 06:15:47 |
SUCCESS
|
CheckForUnexpectedParametersInVpAuthorizationRequest
All authorization parameters are expected
|
||||
|
||||||
| 2026-11-03 06:15:47 | SUCCESS |
CheckNoTransactionDataInVpAuthorizationRequest
Authorization request does not contain transaction_data
|
|
|
||
| 2026-11-03 06:15:47 | INFO |
ExtractVerifierInfoFromAuthorizationRequest
Skipped evaluation due to missing required element: effective_authorization_endpoint_request verifier_info
|
||||||
|
||||||||
| 2026-11-03 06:15:47 | INFO |
ValidateVerifierInfo
Skipped evaluation due to missing required element: effective_authorization_endpoint_request verifier_info
|
||||||
|
||||||||
| 2026-11-03 06:15:47 | INFO |
CheckForUnexpectedParametersInVerifierInfo
Skipped evaluation due to missing required element: effective_authorization_endpoint_request verifier_info
|
||||||
|
||||||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureValidResponseUriForAuthorizationEndpointRequest
response_uri is valid https url with no fragment
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
CheckNoRedirectUriInVpAuthorizationRequest
Authorization request does not contain 'redirect_uri'
|
|
|
||
| 2026-11-03 06:15:47 |
SUCCESS
|
CheckNoPresentationDefinitionInVpAuthorizationRequest
Authorization request does not contain presentation_definition or presentation_definition_uri
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalCheckForUnexpectedParametersInVpClientMetadata
All client_metadata parameters are expected
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalValidateVpFormatsSupportedInClientMetadata
vp_formats_supported contains valid dc+sd-jwt format
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalCheckForKeyIdInClientMetadataJWKs
All keys in client_metadata.jwks have unique kid values
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalValidateClientMetadataJwksForEncryptedResponse
client_metadata.jwks contains valid encryption key(s) with alg
|
||
|
||||
| Validate the JWK set in client_metadata |
| 2026-11-03 06:15:47 |
SUCCESS
|
MapJwksToValidationLocation
Selected the JWK set in client_metadata for validation
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureJwksHasNoPrivateOrSymmetricKeyMaterial
The JWK set in client_metadata contains only public key material
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateJwksStructure
The JWK set in client_metadata is structurally valid
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
ParseUsableJwksKeys
All usable keys in the JWK set in client_metadata parse successfully
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
WarnOnUnusableJwksKeys
All keys in the JWK set in client_metadata use a supported key type, curve and algorithm
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalCheckEncryptionKeyNotReused
Verifier response-encryption key(s) were not seen in a previous Authorization Request
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
ExtractDCQLQueryFromAuthorizationRequest
Extracted dcql_query from authorization request
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateDCQLQuery
DCQL query input is valid
|
||||
|
||||||
| 2026-11-03 06:15:47 | SUCCESS |
CheckForUnexpectedParametersInDcqlQuery
No unknown properties were found in the DCQL query
|
||||
|
||||||
| 2026-11-03 06:15:47 | SUCCESS |
CheckForNonSelectivelyDisclosableClaimsInDcqlQuery
DCQL query does not request any SD-JWT VC claims that cannot be selectively disclosed
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
CheckForUnreferencedClaimsInDcqlQuery
The DCQL query does not contain claims entries unreferenced by claim_sets
|
|
|
||
| 2026-11-03 06:15:47 |
SUCCESS
|
CheckDCQLQueryCredentialFormatMatchesTestConfiguration
DCQL query credential format matches test configuration
|
||||
|
||||||
| 2026-11-03 06:15:47 |
SUCCESS
|
CreateAuthorizationEndpointResponseParams
Added authorization_endpoint_response_params to environment
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
CreateValidStatusListReference
Allocated a status list index that the served status list marks as valid
|
||
|
||||
| 2026-11-03 06:15:47 |
|
CreateSdJwtKbCredential
Filtered SD-JWT disclosures to DCQL requested claims
|
||||||
|
||||||||
| 2026-11-03 06:15:47 |
|
CreateSdJwtKbCredential
Created an SD-JWT+KB
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
VP1FinalGenerateJwtStatusListToken
Generated the Status List Token in JWT format
|
||||||||
|
||||||||||
| 2026-11-03 06:15:47 | SUCCESS |
AddVP1FinalDCQLVPTokenToAuthorizationEndpointResponseParams
Added credential in DCQL 'vp_token' authorization endpoint response parameter
|
||
|
||||
| 2026-11-03 06:15:47 |
|
VP1FinalEncryptVPResponse
Encrypted the response
|
||||||||||||||
|
||||||||||||||||
| 2026-11-03 06:15:47 |
|
CallDirectPostEndpoint
HTTP request
|
||||||||
|
||||||||||
| 2026-11-03 06:15:47 |
INCOMING
|
oid4vp-1final-verifier-happy-flow
Incoming HTTP request to /test/a/siros-verifier-vp-test/statuslists/Xp1zM2dB9B2HQdopZRSQ
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureIncomingRequestMethodIsGet
Client correctly used http GET method
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureRevocationListRequestHasOnlyDefinedQueryParameters
The verifier sent no query parameters the Token Status List specification does not define
|
||
|
||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureIncomingRequestBodyIsEmpty
Request body was correctly empty
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureRevocationListRequestAcceptedServedMediaType
The Accept header the verifier sent accepts the media type the revocation list is served as
|
||||
|
||||||
| 2026-11-03 06:15:47 |
|
oid4vp-1final-verifier-happy-flow
The verifier fetched the status list the presented credential references.
|
||
|
||||
| 2026-11-03 06:15:47 |
OUTGOING
|
oid4vp-1final-verifier-happy-flow
Response to HTTP request to test instance KosEwNw5dCtphwu
|
||||||||
|
||||||||||
| 2026-11-03 06:15:47 |
RESPONSE
|
CallDirectPostEndpoint
HTTP response
|
||||||||
|
||||||||||
| 2026-11-03 06:15:47 |
SUCCESS
|
CallDirectPostEndpoint
Parsed response uri endpoint response
|
||||||||||
|
||||||||||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureHttpStatusCodeIs200
https://conformance.example.com:9443/vp/response/I2UupvL5VDjHKE-Zu1GCTA endpoint returned the expected http status
|
||||
|
||||||
| 2026-11-03 06:15:47 | SUCCESS |
EnsureContentTypeJson
endpoint_response Content-Type: header is application/json
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateDirectPostResponse
Direct post response is an empty object.
|
|
|
||
| 2026-11-03 06:15:47 | SUCCESS |
ValidateDirectPostResponseRedirectUriWhenPresent
redirect_uri absent from direct_post response body (OID4VP §8.2 permits this)
|
|
|
||
| 2026-11-03 06:15:47 | REVIEW IMAGE |
ExpectVerifierSuccessfulVerificationPage
Upload a screenshot showing that the verifier successfully verified the presented credential (for example, a page displaying the credential contents).
|
||||
|
||||||
| 2026-11-03 06:15:47 |
OUTGOING
|
oid4vp-1final-verifier-happy-flow
Response to HTTP request to test instance KosEwNw5dCtphwu
|
||||
|
||||||
| 2026-11-03 06:15:49 | SUCCESS |
EnsureVerifierFetchedRevocationList
The verifier fetched the revocation list referenced by the presented credential
|
||
|
||||
| 2026-11-03 06:15:49 |
FINISHED
|
oid4vp-1final-verifier-happy-flow
Test has run to completion
|
||
|
||||
| 2026-11-03 06:15:50 |
|
TEST-RUNNER
Alias has now been claimed by another test
|
||||
|
||||||