You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Split out of #115 (2026-07-16 sourcing review). Two of #115's three checkboxes (a third-party SD-JWT VC and the W3C Bitstring decode vector) are actionable and land there; this issue tracks the remaining one, which is blocked on the ecosystem publishing a static artifact.
Why
verify_vp_token's e2e vector is self-recorded: openvc builds the vp_token it then verifies. A vp_token produced by another implementation would pin real interop of the presentation layer (DCQL response shape, KB-JWT binding, credential-format nesting), not just of the inner credential.
What exists today (checked 2026-07-16)
OpenID4VP 1.0 (Final, 2025-07-09) elides every example token — §8.1.1 shows "eyJhb...YMetA"; there is no complete base64 credential string nor any example key material in the whole document (checked mechanically).
The OIDF conformance suite (certification.openid.net) is a live, interactive harness — self-certification for OID4VP 1.0 / OID4VCI 1.0 / HAIP 1.0 opened 2026-02-26 — and publishes no downloadable vectors.
The EUDI reference implementation commits no complete vp_token response (the verifier README's example is a dummy; the Postman collection carries none). Its dev verifier (verifier.eudiw.dev) produces real vp_tokens only interactively.
Vendor an externally-produced OpenID4VP 1.0 vp_token (with enough published key material to verify offline) under tests/fixtures/, with provenance + retrieval date in the fixture README.
Verify it end to end through verify_vp_token (positive), plus a tamper negative.
Gate / unblock conditions (any of)
The OIDF conformance suite (or the OpenID4VP spec repo) publishes static test vectors with keys.
The EUDI reference implementation commits a complete example vp_token response with verifiable keys.
Another serious implementation (wallet or verifier) publishes a static, signed, verifiable vp_token artifact.
Invariants: offline & deterministic test suite; tests/ is not a package. Feeds the external-audit (#75) conformance-evidence story, same as #115.
Split out of #115 (2026-07-16 sourcing review). Two of #115's three checkboxes (a third-party SD-JWT VC and the W3C Bitstring decode vector) are actionable and land there; this issue tracks the remaining one, which is blocked on the ecosystem publishing a static artifact.
Why
verify_vp_token's e2e vector is self-recorded: openvc builds thevp_tokenit then verifies. Avp_tokenproduced by another implementation would pin real interop of the presentation layer (DCQL response shape, KB-JWT binding, credential-format nesting), not just of the inner credential.What exists today (checked 2026-07-16)
"eyJhb...YMetA"; there is no complete base64 credential string nor any example key material in the whole document (checked mechanically).vp_tokenresponse (the verifier README's example is a dummy; the Postman collection carries none). Its dev verifier (verifier.eudiw.dev) produces realvp_tokens only interactively.vp_tokenwe assemble ourselves from them is our presentation-layer output, not a third-party artifact, so it does not close this gap.Scope (when unblocked)
vp_token(with enough published key material to verify offline) undertests/fixtures/, with provenance + retrieval date in the fixture README.verify_vp_token(positive), plus a tamper negative.Gate / unblock conditions (any of)
vp_tokenresponse with verifiable keys.vp_tokenartifact.Invariants: offline & deterministic test suite; tests/ is not a package. Feeds the external-audit (#75) conformance-evidence story, same as #115.