openid / openid/OpenID4VP

How to deterministically match the transaction_data_hashes to the transaction_data?

Open
#442 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

transaction data
Dominant language
Shell
Stars
112
Forks
38
Avg merge
12d 19h
Merged PRs (30d)
4

Description

OID4VP allows to include an array of transaction_data entries, where each entry can specify an array of credential_ids that are allowed to include the transaction data hash. Also an array of hash algorithms can be configured.

Let's say we have a request:

  • requesting three credentials, credential A, credential B, credential C
  • requesting two transaction hashes to be signed over, the first can be signed over by credential A & B, the second by credential B & C.
  • They allow sha-256 and sha-512.

How would i know which of the hashes in the response match to which of the transaction_data entries from the response? We can't match the indexes as not all credentials sign over all hashes. We also can't pre-compute the hashes as there's multiple hashing methods possible (or we would have to pre-compute all possible hash values for all possible hash algorithms?).

Edit: see #443 for possible solution

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the OID4VP transaction_data and transaction_data_hashes requirements described in this issue, then read the possible solution in #443. Determine how the specification can identify each hash despite different credential_ids and allowed hash algorithms. Done means the mapping is deterministic and unambiguous for the stated example.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.