Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions draft/digital-credentials-harmonized-presentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,17 @@ To be completed.
# Symbols and abbreviated terms

To be completed.

# CBOR Encoding {#cbor-encoding}

All CBOR data items defined in this document shall be encoded in accordance with the core deterministic encoding requirements defined in [RFC 8949, Section 4.2.1](https://www.rfc-editor.org/rfc/rfc8949#section-4.2.1).

The floating-point values NaN, Infinity and -Infinity shall not be used.

These requirements do not apply to the content of byte strings that carry structures defined outside this document (e.g. mdoc data structures like `Document` or `DeviceEngagement`). Those external data structures are conveyed and processed as received.

> **Note:** The deterministic serialization defined in draft-ietf-cbor-serialization [2] is the same as RFC 8949, Section 4.2.1 except for the encoding of NaN values, which are not used in this document.

# Credential Request
> This section does not yet have working group consensus, which is tracked in [issue #24](https://github.com/openid/dchp/issues/24).

Expand Down Expand Up @@ -246,6 +257,8 @@ The transaction transcript provides a cryptographic context binding across all p

Because deterministic CBOR encoding (RFC 8949 §4.2) is required throughout this protocol, the transcript is defined as a **CBOR map** rather than a fixed-order array. Deterministic CBOR guarantees a unique canonical byte encoding for any given map value, making it safe to hash or sign over without ambiguity. This is the key difference from the ISO/IEC 18013-5 `SessionTranscript` array, which used a fixed order precisely to achieve the same determinism property.

The transcripts are never transmitted and the verifier and the wallet each construct them independently and shall encode them as specified in [CBOR Encoding](#cbor-encoding), so that both obtain identical byte representations.

Two transcript types are defined:

- **`ReaderTransactionTranscript`** — constructed by the **verifier** and used in reader authentication and response encryption.
Expand Down Expand Up @@ -518,7 +531,8 @@ SdJwtData = tstr ; SD-JWT combined presentation string
```cddl
; ==========================================
; TRANSACTION TRANSCRIPTS
; Deterministic CBOR encoding (RFC 8949 §4.2) is REQUIRED for all transcript values.
; Transcripts shall be encoded as specified in the "CBOR Encoding" clause
; (RFC 8949, Section 4.2.1).
; ==========================================

; Used by the verifier: for reader authentication and as info parameter for response encryption.
Expand Down Expand Up @@ -590,15 +604,19 @@ Clause 7 (see <https://www.iso.org/directives-and-policies.html>).
[1] ISO/IEC Directives, Part 2, *Principles and rules for the structure and
drafting of ISO and IEC documents*

[2] IETF Internet-Draft draft-ietf-cbor-serialization, *CBOR Serialization and
Determinism* (work in progress)

# Acknowledgements {#Acknowledgements}

We would like to thank TBD for their
valuable feedback and contributions to this specification.

# Document History

[[ To be removed from the final specification ]]
[[ To be removed from the final specification ]]

-00
-00

* initial working draft
* adds definition on deterministic cbor encoding
* initial working draft
Loading