Make transaction data credential format specific and define details for sd-jwt and mdoc#421
Make transaction data credential format specific and define details for sd-jwt and mdoc#421Sakurann merged 21 commits intoopenid:mainfrom
Conversation
This enables the QES creation use case where transaction data contains parameters for advanced e-signature creation. In these cases, the transaction data do not get hashed in their JSON representation format using a single hash algorithm. Instead, the X.509 credential format specifies specific ways of processing, that still meet the broadened requirements.
|
Done, thanks @babisRoutis. |
Pointed description to issue 423. |
|
@c2bo @sander After re-reading the spec and playing with some examples, I would argue transaction_data_hashes_alg and transaction_data_hashes are designed and might work well for sd-jwt. I'm not so sure for mdoc and I'm pretty sure it does not work well for x.509 (QES). For example, the transaction data type for QES (see below) already contains identifiers for algorithms (hashAlgorithmOID) based on pre-existing standards (ETSi and CSC) and QES/CMS standards define what needs to be incorporated into the signature, some of this data not even passed in the request but obtained from other sources, like time stamping services (in this cases the "T" in "Ades-B-T"). {
"type": "https://cloudsignatureconsortium.org/2025/qes",
"credential_ids": [
"certificate_by_policy"
],
"signatureQualifier": "eu_eidas_qes",
"documentDigests": [
{
"signature_format": "P",
"conformance_level": "Ades-B-T",
"signed_envelope_property": "Certification",
"label": "Example Contract",
"href": "https://protected.rp.example/contract-01.pdf?token=HS9naJKWwp901hBcK348IUHiuH8374",
"checksum": "sha256-sTOgwOm+474gFj0q0x1iSNspKqbcse4IeiqlDg/HWuI=",
"access": {
"type": "OTP",
"oneTimePassword": "51623"
}
}
],
"hashAlgorithmOID": "2.16.840.1.101.3.4.2.1"
}Based on those thoughts, I would suggest to make the way transaction data is included or referenced truly a credential format specific thing. That would mean to move transaction_data_hashes_alg and transaction_data_hashes to appendix B.4 and change the second and third paragraph in section 8.4 to something like "The Wallet that received the transaction_data parameter in the request MUST include a representation or reference to the data in the in the respective credential presentation. How this is done is specific to each credential format and is defined by each Credential Format, such as those in Appendix B. If the wallet does not support transaction_data parameter, it MUST return an error." |
|
@tlodderstedt agreed. My original PR was to keep the change as small as possible, but your proposal is the better change. For mdoc queries, the transaction data is expected to be returned as Since OID4VCI also specifies a W3C VC credential format, what would be the best way to include transaction data there? |
openid#421 (comment) Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
openid#421 (comment) Better left to a separate PR.
Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com>
Co-authored-by: GarethCOliver <gco@google.com>
|
WG discussion:
|
Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
|
|
||
| #### Example Specification | ||
|
|
||
| The following is a non-normative example that can be included in a transaction data type specification: |
There was a problem hiding this comment.
non-normative example does not match the new heading in my opinion. Suggest to frame it as "example profile" or "one profile"
Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com>
openid#421 (comment) Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
This enables the QES creation use case where transaction data contains parameters for advanced e-signature creation. In these cases, the transaction data do not get hashed in their JSON representation format using a single hash algorithm. Instead, the X.509 credential format specifies specific ways of processing, that still meet the broadened requirements.
Highlight of changes:
credential formattransaction data type specs to define transaction data support and requirements.transaction_data_hashesandtransaction_data_hashes_alginto SD-JWT VC format spec.sha-256a mandatory default.sha-256interoperability promotion remark.Closes #423
Closes #418
Relates to #259
Does not address #442, #443