Namespace Tessio.Verifier.Core.Mdoc
Classes
- DeviceRequestBuilder
Builds the ISO/IEC 18013-5
DeviceRequestthat travels over the W3C Digital Credentials API (ISO/IEC 18013-7 Annex C): one docRequest, the itemsRequest tag-24 wrapped so its bytes stay stable under the digest that binds the session. Build(string, string, IReadOnlyList<string>, bool) is unsigned; a signed request comes from CreateSignedRequest(string, string, IReadOnlyList<string>, string, MdocReaderKey, byte[]?).
- Iso18013AnnexC
The verifier's side of an ISO/IEC 18013-7 Annex C presentation over the W3C Digital Credentials API: builds the request pair the browser call carries, and opens the encrypted response into
DeviceResponsebytes plus the session transcripts device authentication is verified over. Verification itself stays in MdocVerifier.
- Iso18013AnnexCRequest
What the browser call carries, and what the verifier keeps to open the answer.
- Iso18013AnnexCResponse
An opened Annex C response: the decrypted bytes and the transcript that binds them.
- MdocErrorCodes
Stable error codes for mdoc verification failures, alongside the shared codes in ErrorCodes (structure_invalid, signature_invalid, issuer_untrusted, …).
- MdocProcessingException
A structural failure while processing an mdoc: malformed CBOR, a missing required element or an invalid COSE structure. Carries a stable error code for Code.
- MdocReaderKey
The key a reader signs an mdoc request's
readerAuthwith, and the certificate path that names it to the wallet: the reader (access) certificate first, then any intermediates, never the trust anchor. Checked once, here, so a request is never signed by a key its own certificate does not hold, as long as the caller leaves the key as it was.
- MdocVerificationContext
Per-verification context for mdoc presentations. Richer than the frozen VerificationContext because the mdoc device signature covers the OpenID4VP session transcript, which is built from more than a nonce.
- MdocVerifier
Verifies an mdoc presentation (
mso_mdoc, ISO/IEC 18013-5 over OpenID4VP Annex B.2): DeviceResponse decoding, issuerAuth signature via the x5chain Document Signer certificate, MSO validity window, per-item digest checks and IACA trust through ITrustListResolver. Structural failures fail fast; policy failures accumulate into Errors with stable codes.
- MdocVerifierOptions
Policy knobs for MdocVerifier.
- SessionTranscriptBuilder
Builds the ISO 18013-5
SessionTranscriptfor 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.
- ZkDisclosure
One disclosed element: its namespace, its identifier and its value as encoded CBOR.
- ZkProofRequest
The inputs a zero knowledge proof of an mdoc is checked against.
- ZkRequest
Asks the wallet for a zero knowledge proof of the requested elements: the
zkRequesta request carries in its ItemsRequest'srequestInfo.
Interfaces
- IZkProofVerifier
Checks the proof of a zero knowledge mdoc presentation. MdocVerifier does everything else first: it reads the presentation, checks the docType, bounds the wallet's timestamp against its own clock, takes the issuer key from the document signer certificate and asks the trust seam about that certificate's chain. Only a presentation that passes all of that reaches VerifyAsync(ZkProofRequest, CancellationToken).