Class ZkRequest
Asks the wallet for a zero knowledge proof of the requested elements: the zkRequest a request carries
in its ItemsRequest's requestInfo.
public sealed class ZkRequest
- Inheritance
-
ZkRequest
- Inherited Members
Remarks
Pass one to CreateRequest(string, string, IReadOnlyList<string>, ZkRequest) or CreateSignedRequest(string, string, IReadOnlyList<string>, string, MdocReaderKey, byte[]?, ZkRequest). Keep it with the request and set the same one as ZkRequest when verifying the answer, so a proof made with a circuit it did not offer is refused. The age verification profile carries zero knowledge proofs over the Digital Credentials API only (technical specification 1.1.0, Annex A, A.6), so no other transport takes one.
Constructors
ZkRequest(IEnumerable<string>)
Asks for a proof made with one of the circuits systemIds names.
public ZkRequest(IEnumerable<string> systemIds)
Parameters
systemIdsIEnumerable<string>The
zkSystemIdof each circuit the wallet may prove with, for examplelongfellow-libzk-v1_6_1_4096_2945_137e…. Offer only circuits the verifier accepts; with the zero knowledge package that isLongfellowProofVerifier.SystemIds. Offer one only where the answer is checked by an MdocVerifier whose CheckStatus is false: one that checks status refuses every proof. Annex A, A.8 puts one system in scope,longfellow-libzk-v1. Each identifier must name it in the form the A.11 example and the Longfellow wallet libraries use, with a lowercase hash, because the circuit parameters written beside it are read from it.
Exceptions
- ArgumentNullException
systemIdsor one of its items is null.- ArgumentException
systemIdsis empty, holds an identifier not of that form or names one circuit twice.
Properties
Required
zkRequired: whether the wallet must answer with a proof. Leave it false, the default, for the age
verification profile: its Annex A, A.6 has a plain mdoc presentation answer where the device cannot make a
proof, and A.9 says "A Relying Party SHALL NOT reject a presentation solely on the ground that it uses the
plain ISO mDoc fallback mechanism".
public bool Required { get; init; }