c_nonce & credential batches behaviour not clearly stated
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 125
- Forks
- 41
- PR merge metrics
- No merged PRs in 30d
Description
When the wallet is requesting (say) a batch of 10 credentials, it could either:
- Request c_nonce once and use it in all 10 proofs send in the array to the credential endpoint
- Request c_nonce 10 times and send 10 proofs each with a potentially different nonce in the array to the credential endpoint
I can't find anything that makes a specific direction clear, though it does say in the proof replay section
A Wallet can continue using a given nonce until it is rejected by the Credential Issuer.
I think '1' is the sensible way to do it as I can't see what benefit you can get from having 10 different nonces - a key proof is either fresh or it's not, and 10 identical nonces matching the most recent c_nonce the server has returned is sufficient to guarantee freshness.
If we agree '1' is intended, then I think it's probably sensible to add two clauses somewhere:
When supplying multiple proofs, all proofs MUST have the same c_nonce.
and:
The c_nonce included in the proof MUST be the c_nonce most recently received from the issuer.
We saw behaviour '2' is a wallet that failed the conformance tests. Both the issuer and wallet tests currently expect behaviour '1'.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the proof replay section and the credential endpoint's multiple-proof requirements, then compare them with the conformance tests mentioned in the issue. Trace whether the specification distinguishes one c_nonce reused across a batch from separate nonces. Done means the intended batch behavior and nonce freshness rule are stated unambiguously in the appropriate specification section.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100