Skip to content

Conversation

@TimoGlastra
Copy link
Member

@TimoGlastra TimoGlastra commented Apr 4, 2025

Supersedes #488

Fixes #495
Fixes #487

Dependant on #479 (it started from that branch due to the conflicts, once that PR is merged i will rebase). You can see the changes from this PR here: c5818cd

  • Unified definition of vp_formats and vp_formats_supported for each format
  • Updated inconsistent formats usage between vp_formats and vp_formats_supported.
  • Extended LDP proofs with cryptosuite to make it easier to query/define supported schemes (since most proofs will use DataIntegrityProof
  • Added a definition for mso_mdoc. I based it on @awoie's PR in OID4VCI, and tried to be consistent and defined both IssuerSigned and DeviceSigned supported algorithms. make credential_signing_alg_values_supported type and values format specific OpenID4VCI#460. I was doubting if we need it since I think 18013-5 already has requirements on the supported algorithms, but in practice a lot of implementations do not support all algorithms. I'm open to suggestions to make this simpler, but just wanted to show what it would look like for mdoc.

NOTE: this has breaking changes, but I think the previous definitions were really underspecified (and leaning on PEX), and not consistent. So I think it's worth it to make these changes before 1.0

@TimoGlastra
Copy link
Member Author

@OR13 given your experience with DataIntegrityProof, does the new ldp_vp syntax with proof_type_values and cryptosuite_values makes sense? (I will update the outdated examples)

@OR13
Copy link

OR13 commented Apr 5, 2025

Looks ok to me.
I suggest sending the PR to the credentials community group for review.
That is where the data integrity proof experts are.

Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
@Sakurann
Copy link
Collaborator

WG discussion.

  • merge after changing allow_replay to require_cryptographic_holder_binding
  • encouraging those in the WG to review this during WGLC

The `vp_formats_supported` parameter of the Verifier metadata or Wallet metadata MUST have the Credential Format Identifier as a key, and the value MUST be an object consisting of the following name/value pairs:

* `issuer_signed_alg_values`: OPTIONAL. A JSON array containing fully-specified identifiers of cryptographic algorithms (as defined in [@!I-D.ietf-jose-fully-specified-algorithms]) supported for an `IssuerSigned` CBOR structure of an mdoc. If present, the `alg` COSE header (as defined in [@!RFC8152]) of the `IssuerSigned` structure of the presented mdoc MUST match one of the array values. If the `IssuerSigned` structure is not signed with a fully-specified cryptographic algorithm identifier (commonly known as a polymoprhic cryptographic algorithm identifier), the fully-specified algorithm derived from the combination of the `alg` value from the COSE header and the `crv` parameter from the signing key MUST match one of the array values.
* `device_signed_alg_values`: OPTIONAL. A JSON array containing fully-specified identifiers of cryptographic algorithms (as defined in [@!I-D.ietf-jose-fully-specified-algorithms]) supported for an `DeviceSigned` CBOR structure of an mdoc. If present, the `alg` COSE header (as defined in [@!RFC8152]) of the `DeviceSigned` structure of the presented mdoc MUST match one of the array values. If the `DeviceSigned` structure is not signed with a fully-specified cryptographic algorithm identifier (commonly known as a polymoprhic cryptographic algorithm identifier), the fully-specified algorithm derived from the combination of the `alg` value from the COSE header and the `crv` parameter from the signing key MUST match one of the array values.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mdoc device signed can be digitally signed or HMAC-ed. for HMAC-ed device signed, agreed to define identifiers in openid4vp specification

TimoGlastra and others added 2 commits April 13, 2025 15:11
Co-authored-by: Paul Bastian <paul.bastian@posteo.de>
Co-authored-by: Paul Bastian <paul.bastian@posteo.de>
@TimoGlastra
Copy link
Member Author

Okay so i understand what needs to happen before merge:

  • merge with main
  • merge vp and vc for w3c
  • leave mdoc as is, martijn will do a follow up?

Co-authored-by: Paul Bastian <paul.bastian@posteo.de>
@Sakurann
Copy link
Collaborator

@TimoGlastra sorry if notes were not clear enough

  • please make sure examples reflect changes from PR Allow presentation without holder binding #513
  • please resolve merge conflicts so that we can merge
  • we will address martijn's comments on mdoc in another PR, it is ok to merge as-is for now

@TimoGlastra
Copy link
Member Author

I updated the PR based on the feedback and main. With the merging of the vc and vp formats for W3C I also merged the proof_type_values and cryptosuite_values. Please let me know if it's desired to have vc_proof_type_values, vp_proof_type_values, vc_cryptosuite_values and vp_cryptosuite_values. I didn't want to make it more complex than needed.

@Sakurann
Copy link
Collaborator

wg discussion: ok to merge once @c2bo re-reviews

Co-authored-by: Christian Bormann <8774236+c2bo@users.noreply.github.com>
@Sakurann Sakurann dismissed martijnharing’s stale review April 16, 2025 19:19

upon a verbal agreement that Martijn is ok for this PR to be merged conditional to his remaining comments around device_signed_alg_values are addressed

@Sakurann Sakurann merged commit 0c8cb55 into openid:main Apr 16, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

9 participants