Skip to content

add draft18 oid4vp backwards compat module#290

Closed
Ryanmtate wants to merge 3 commits intomainfrom
feat/openid4vp-draft-18-legacy-support
Closed

add draft18 oid4vp backwards compat module#290
Ryanmtate wants to merge 3 commits intomainfrom
feat/openid4vp-draft-18-legacy-support

Conversation

@Ryanmtate
Copy link
Copy Markdown
Contributor

@Ryanmtate Ryanmtate commented Mar 11, 2026

This pull request adds backward compatibility support for the OpenID for Verifiable Presentations (OID4VP) draft 18 specification to the Rust codebase. It introduces a self-contained draft18 module under oid4vp with prior error handling, credential presentation, request signing, and delegated verification capabilities. The changes also update dependencies to include the appropriate version of the OID4VP library for draft 18.

OID4VP Draft 18 Integration:

  • Added a new draft18 module under oid4vp, exposing submodules for credential handling, error management, holder logic, permission requests, presentations, request signing, and verifier functionality. This module is now available for use throughout the codebase. [1] [2]

Error Handling:

  • Introduced the Draft18OID4VPError enum to provide detailed error reporting for all operations in the OID4VP draft 18 flow, including validation, token creation, submission, and cryptographic operations.

Credential Presentation and Signing:

  • Implemented the CredentialPresentation trait and related types to define how credentials are presented, matched against definitions, and signed. Added the Draft18PresentationSigner interface for host environments to provide signing capabilities, and the Draft18PresentationOptions struct to encapsulate presentation metadata and signing logic.

Request Signing:

  • Added the Draft18RequestSignerInterface trait and an example implementation for signing authorization requests, including error handling for unsupported algorithms and signing failures.

Delegated Verification:

  • Implemented the Draft18DelegatedVerifier object and supporting types to initialize and poll the status of delegated verification requests, including structured responses and error handling for HTTP and URL issues.

Dependency Update:

  • Added the openidvp_draft18 dependency to Cargo.toml, pointing to the appropriate commit of the draft 18 implementation.

Ryanmtate and others added 3 commits March 11, 2026 12:22
Signed-off-by: Ryan Tate <ryan.tate@spruceid.com>
Signed-off-by: Ryan Tate <ryan.tate@spruceid.com>
…data

- add Oid4vpVersion and get_oid4vp_version to the Rust OID4VP API
- add Rust tests covering v1, draft-18, ambiguous, and unsupported request shapes
- expose draft-18 input_descriptor_id and selective_disclosable on presentable credentials
- update Android showcase to use Rust version detection and direct draft-18 descriptor grouping
- update iOS showcase to use Rust version detection and direct draft-18 descriptor grouping
- add draft-18 native signer/support flows for showcase apps
- regenerate Kotlin and Swift UniFFI bindings for the new Rust API
- remove duplicated native OID4VP request detector implementations
@Ryanmtate
Copy link
Copy Markdown
Contributor Author

Closing in favor of #295

@Ryanmtate Ryanmtate closed this Mar 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants