# PdfValidationOptions class

> What Verify checks certificates against. PdfValidationOptions class, PdfNetStack.Signing namespace.

Namespace: [PdfNetStack.Signing](https://www.jadev-corp.com/api/pdfnetstack-signing/)  
Assembly: PdfNetStack.dll  
Package: `PdfNetStack`

What [Verify](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfsigner/#PdfNetStack_Signing_PdfSigner_Verify_System_Byte___PdfNetStack_Signing_PdfValidationOptions_) checks certificates against.

```csharp
public sealed record PdfValidationOptions : IEquatable<PdfValidationOptions>
```

**Inheritance**

[object](https://learn.microsoft.com/dotnet/api/system.object) ← 
[PdfValidationOptions](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfvalidationoptions/)

**Implements**

[IEquatable&lt;PdfValidationOptions\>](https://learn.microsoft.com/dotnet/api/system.iequatable\-1)

## Properties

### <a id="PdfNetStack_Signing_PdfValidationOptions_AcceptablePolicies"></a> AcceptablePolicies

The certificate policies the chain must be valid for, as object identifiers (the
user-initial-policy-set of RFC 5280, 6.1.1). Empty, the default, accepts any policy, and
the chain then passes the policy check unless a certificate's policy constraints require
an explicit policy. With policies given, the chain must be valid for at least one of them
or for anyPolicy.

```csharp
public IReadOnlyList<string> AcceptablePolicies { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[string](https://learn.microsoft.com/dotnet/api/system.string)\>

### <a id="PdfNetStack_Signing_PdfValidationOptions_Certificates"></a> Certificates

Extra certificates, such as intermediate CAs, for building chains.

```csharp
public IReadOnlyList<X509Certificate2> Certificates { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[X509Certificate2](https://learn.microsoft.com/dotnet/api/system.security.cryptography.x509certificates.x509certificate2)\>

### <a id="PdfNetStack_Signing_PdfValidationOptions_CheckRevocation"></a> CheckRevocation

Check revocation of every certificate below the trust anchor. Default true.

```csharp
public bool CheckRevocation { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="PdfNetStack_Signing_PdfValidationOptions_InhibitAnyPolicy"></a> InhibitAnyPolicy

Do not let anyPolicy in a certificate stand for every policy (initial-any-policy-inhibit). Default false.

```csharp
public bool InhibitAnyPolicy { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="PdfNetStack_Signing_PdfValidationOptions_InhibitPolicyMapping"></a> InhibitPolicyMapping

Ignore policy mappings: a mapped policy no longer counts (initial-policy-mapping-inhibit). Default false.

```csharp
public bool InhibitPolicyMapping { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="PdfNetStack_Signing_PdfValidationOptions_RequireExplicitPolicy"></a> RequireExplicitPolicy

Require the chain to be valid for a policy even when no certificate asks for that (initial-explicit-policy). Default false.

```csharp
public bool RequireExplicitPolicy { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="PdfNetStack_Signing_PdfValidationOptions_RevocationSource"></a> RevocationSource

Revocation data beyond what the document's security store (DSS) holds; null for none.

```csharp
public IPdfRevocationSource? RevocationSource { get; init; }
```

#### Property Value

 [IPdfRevocationSource](https://www.jadev-corp.com/api/pdfnetstack-signing/ipdfrevocationsource/)?

### <a id="PdfNetStack_Signing_PdfValidationOptions_TrustAnchors"></a> TrustAnchors

The certificates trusted as roots of a chain, usually root CAs. With none, chains are built but [Chain](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfcertificatevalidation/#PdfNetStack_Signing_PdfCertificateValidation_Chain) is not checked.

```csharp
public IReadOnlyList<X509Certificate2> TrustAnchors { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[X509Certificate2](https://learn.microsoft.com/dotnet/api/system.security.cryptography.x509certificates.x509certificate2)\>

### <a id="PdfNetStack_Signing_PdfValidationOptions_TrustedLists"></a> TrustedLists

Trusted lists (ETSI TS 119 612) to confirm qualified status against, such as the EU list of
trusted lists and the national lists it points to, read with
[Load](https://www.jadev-corp.com/api/pdfnetstack-signing/pdftrustedlist/#PdfNetStack_Signing_PdfTrustedList_Load_System_Byte___PdfNetStack_Signing_PdfTrustedList_). Lists whose signature did not
pass, or that have expired, are not used. With lists, every signer gets
[TrustedListQualification](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfcertificatevalidation/#PdfNetStack_Signing_PdfCertificateValidation_TrustedListQualification) and every timestamp
[QualifiedTimestamp](https://www.jadev-corp.com/api/pdfnetstack-signing/pdftimestampinfo/#PdfNetStack_Signing_PdfTimestampInfo_QualifiedTimestamp). Empty by default.

```csharp
public IReadOnlyList<PdfTrustedList> TrustedLists { get; init; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[PdfTrustedList](https://www.jadev-corp.com/api/pdfnetstack-signing/pdftrustedlist/)\>

### <a id="PdfNetStack_Signing_PdfValidationOptions_TrustedListsAsTrustAnchors"></a> TrustedListsAsTrustAnchors

Count certificates of the usable [TrustedLists](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfvalidationoptions/#PdfNetStack_Signing_PdfValidationOptions_TrustedLists) as trust anchors, beside
[TrustAnchors](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfvalidationoptions/#PdfNetStack_Signing_PdfValidationOptions_TrustAnchors), as the EU trust model does. Default true.

```csharp
public bool TrustedListsAsTrustAnchors { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

#### Remarks

Only the identities of CA services (CA/QC and CA/PKC) anchor a chain, and only for a
validation time at which the service's entry in force (its current information or a
history entry) has an approved status: granted, recognised at national level, or before
eIDAS under supervision, in cessation or accredited, with no critical extension the
library does not interpret. TSA/QTST and TSA services anchor a time stamp authority's
chain under the same rules, never a signer's. OCSP, CRL and other services, and services
that are withdrawn, deprecated or were never approved, anchor nothing. The default stays
true because a list is only used when its XML signature verified against certificates the
application supplied for it, and because without anchors chains are not checked, so the
trusted list qualification would always be Indeterminate. Set it to false to anchor
chains on [TrustAnchors](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfvalidationoptions/#PdfNetStack_Signing_PdfValidationOptions_TrustAnchors) alone and use the lists only for qualification.

### <a id="PdfNetStack_Signing_PdfValidationOptions_UseDocumentSecurityStore"></a> UseDocumentSecurityStore

Use the certificates, OCSP responses and CRLs in the document's security store. Default true.

```csharp
public bool UseDocumentSecurityStore { get; init; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="PdfNetStack_Signing_PdfValidationOptions_ValidationTime"></a> ValidationTime

The time to check certificates at; null to use the time of a valid timestamp, or the
current time when there is none.

```csharp
public DateTimeOffset? ValidationTime { get; init; }
```

#### Property Value

 [DateTimeOffset](https://learn.microsoft.com/dotnet/api/system.datetimeoffset)?

## Used in

- [Digitally sign PDF files in C# and .NET](https://www.jadev-corp.com/guides/signatures/)

Source: https://www.jadev-corp.com/pdfnetstack/api/pdfnetstack-signing/pdfvalidationoptions/
