Class SessionTranscriptBuilder
Builds the ISO 18013-5 SessionTranscript for each transport this library supports. The
device signature covers these bytes, binding the presentation to this verifier's request. An
OpenID4VP redirect flow binds client_id, nonce, the response encryption key thumbprint and the
response_uri; OpenID4VP over the Digital Credentials API binds the origin, nonce and thumbprint;
ISO/IEC 18013-7 Annex C over the same API binds the origin and the EncryptionInfo bytes.
public static class SessionTranscriptBuilder
- Inheritance
-
SessionTranscriptBuilder
- Inherited Members
Methods
Build(string, string, byte[]?, string)
Builds the SessionTranscript for an OpenID4VP redirect-flow presentation.
public static byte[] Build(string clientId, string nonce, byte[]? encryptionKeyThumbprint, string responseUri)
Parameters
Returns
- byte[]
BuildDeviceAuthenticationBytes(byte[], string, byte[])
Builds DeviceAuthenticationBytes, the detached payload the device signature covers.
Wallet simulators sign these; the verifier reconstructs them.
public static byte[] BuildDeviceAuthenticationBytes(byte[] sessionTranscript, string docType, byte[] encodedDeviceNameSpacesBytes)
Parameters
Returns
- byte[]
BuildForDcApi(string, string, byte[]?)
Builds the SessionTranscript for a presentation made over the W3C Digital Credentials API.
public static byte[] BuildForDcApi(string origin, string nonce, byte[]? encryptionKeyThumbprint)
Parameters
originstringThe request's Origin, WITHOUT the
origin:prefix. The prefix belongs on the Client Identifier and not in here, and the two are easy to confuse because the audience of the presentation is the same value with the prefix on it.noncestringThe
noncerequest parameter.encryptionKeyThumbprintbyte[]The RFC 7638 thumbprint of the key the response is encrypted to, under response mode
dc_api.jwt. Null underdc_api, which is cleartext.
Returns
- byte[]
Remarks
MdocVerifier does not call this. A caller verifying a Digital Credentials API presentation takes the bytes from here and passes them via SessionTranscript, which the verifier checks the device signature over.
BuildForIso18013AnnexC(byte[], string)
Builds the SessionTranscript for a presentation over the W3C Digital Credentials API under ISO/IEC 18013-7 Annex C: the mdoc-native mechanism, distinct from OpenID4VP's DC API handover on BuildForDcApi(string, string, byte[]?). The handover digest commits to the exact EncryptionInfo bytes sent with the request and to the origin the browser reports.
public static byte[] BuildForIso18013AnnexC(byte[] encryptionInfo, string origin)
Parameters
encryptionInfobyte[]The encoded EncryptionInfo, byte for byte as sent.
originstringThe request's Origin, without the
origin:prefix.
Returns
- byte[]
Remarks
The second element is null. Some implementations instead place the request's EncryptionParameters there, tag-24 wrapped, and derive the response's HPKE keys over that; a wallet reached over the Digital Credentials API was observed on 2026-08-27 using the form built here, for both the response encryption and the device signature.