Table of Contents

Class SdJwtVcVerifierOptions

Namespace
Tessio.Verifier.Core
Assembly
Tessio.Verifier.Core.dll

Policy knobs for SdJwtVcVerifier.

public sealed class SdJwtVcVerifierOptions
Inheritance
SdJwtVcVerifierOptions
Inherited Members

Properties

AcceptLegacyVcSdJwtTyp

Accepts the legacy vc+sd-jwt typ (pre-Nov-2024 credentials) in addition to the standard dc+sd-jwt. Off by default.

public bool AcceptLegacyVcSdJwtTyp { get; set; }

Property Value

bool

CheckStatus

Whether to resolve and enforce the credential's status claim (Token Status List) when present. Defaults to true — a revoked or suspended credential fails verification. Turn off only for offline scenarios where the status host is unreachable by design.

public bool CheckStatus { get; set; }

Property Value

bool

ClockSkew

Tolerated clock skew for exp / nbf evaluation. Defaults to 5 minutes (the Microsoft.IdentityModel ecosystem default).

public TimeSpan ClockSkew { get; set; }

Property Value

TimeSpan

MaxKeyBindingAge

How far in the past a KB-JWT iat (the time the holder created the presentation) may be and still be accepted. Defaults to 5 minutes: a presentation is meant to be fresh, made in response to this verifier's live request, so an iat older than this is stale or replayed. ClockSkew is added on top for tolerance, and it also bounds how far in the future an iat may be. Set to InfiniteTimeSpan to disable the past bound.

public TimeSpan MaxKeyBindingAge { get; set; }

Property Value

TimeSpan

RequireKeyBinding

Whether a Key Binding JWT is required. Defaults to true — HAIP-profile EUDI presentations are holder-bound. When false, a KB-JWT is still verified if present.

public bool RequireKeyBinding { get; set; }

Property Value

bool

ResolveX5u

Fetches the signing certificate an issuer JWT names by x5u when it carries no x5c. Off by default, and off the x5u is ignored as it was before it was read: a credential with an HTTPS iss resolves through JWT VC Issuer Metadata, and one without fails with IssuerKeyUnresolvable, with a message saying x5u resolution is off.

public bool ResolveX5u { get; set; }

Property Value

bool

Remarks

The fetch goes to a URL the presented credential chooses, and it happens before trust is known, because the trust seam judges the chain the URL returns. It is HTTPS only and bounded in size and time; the default HTTP client also refuses internal addresses, which a client passed to SdJwtVcVerifier must do itself. The x5u is used only when the header's x5t#S256 binds it, and then in preference to issuer metadata, and the certificate must match that thumbprint. A resource is kept only for a credential that verified in full, keyed by URL and thumbprint, and reused for an hour from when it was fetched. An x5u with no x5t#S256 is ignored, so the credential resolves by its iss as it would with this off, and is refused when it has none. The issuer whose URL it is learns when its credentials are verified, so turn this on only for a trust source whose issuers name their certificate this way. A status list token is never resolved by x5u, whatever this says: HAIP 1.0 section 6.1 has its key in x5c.

StatusListCacheDuration

How long a validated status list may be served from cache before refetching. This is the ceiling: the token's own ttl claim shortens it and its exp caps it. Defaults to 5 minutes — the window in which a freshly revoked credential could still verify. Set to Zero to fetch on every verification.

public TimeSpan StatusListCacheDuration { get; set; }

Property Value

TimeSpan