# PdfCertificateCheck class

> The checks made on one certificate of a chain. PdfCertificateCheck class, PdfNetStack.Signing namespace.

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

The checks made on one certificate of a chain.

```csharp
public sealed class PdfCertificateCheck
```

**Inheritance**

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

## Properties

### <a id="PdfNetStack_Signing_PdfCertificateCheck_Certificate"></a> Certificate

The certificate.

```csharp
public X509Certificate2 Certificate { get; }
```

#### Property Value

 [X509Certificate2](https://learn.microsoft.com/dotnet/api/system.security.cryptography.x509certificates.x509certificate2)

### <a id="PdfNetStack_Signing_PdfCertificateCheck_IsTrustAnchor"></a> IsTrustAnchor

True for the trust anchor that ends the chain. Its validity, usage and revocation are taken as given.

```csharp
public bool IsTrustAnchor { get; }
```

#### Property Value

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

### <a id="PdfNetStack_Signing_PdfCertificateCheck_KeyUsage"></a> KeyUsage

The certificate may be used for its role: key usage (digital signature or non-repudiation
for a signer, certificate signing and the CA flag with its path length for a CA), the
critical time stamping usage for a time stamp authority, and no critical extension the
library does not understand.

```csharp
public PdfCheckStatus KeyUsage { get; }
```

#### Property Value

 [PdfCheckStatus](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfcheckstatus/)

### <a id="PdfNetStack_Signing_PdfCertificateCheck_NameConstraints"></a> NameConstraints

The certificate's names (subject, alternative names, and email addresses in the subject
when it has no alternative names) fall within the name constraints of the certificates
above it, the trust anchor's included. Passed when no constraint applies. A self-issued
CA certificate inside the chain is not checked, as RFC 5280 says. Failed when a name
cannot be read or judged against a constraint, and when a certificate above has
constraints that cannot be read.

```csharp
public PdfCheckStatus NameConstraints { get; }
```

#### Property Value

 [PdfCheckStatus](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfcheckstatus/)

### <a id="PdfNetStack_Signing_PdfCertificateCheck_Policies"></a> Policies

The certificate policies the certificate asserts, as object identifiers; empty when it asserts none.

```csharp
public IReadOnlyList<string> Policies { get; }
```

#### 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_PdfCertificateCheck_Problem"></a> Problem

What did not pass, or null.

```csharp
public string? Problem { get; }
```

#### Property Value

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

### <a id="PdfNetStack_Signing_PdfCertificateCheck_QcStatements"></a> QcStatements

The certificate's qualified certificate statements, or null when it has none.

```csharp
public PdfQcStatements? QcStatements { get; }
```

#### Property Value

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

### <a id="PdfNetStack_Signing_PdfCertificateCheck_Revocation"></a> Revocation

Revocation, from a verified OCSP response or CRL that is current at the validation time.

```csharp
public PdfCheckStatus Revocation { get; }
```

#### Property Value

 [PdfCheckStatus](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfcheckstatus/)

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

Where the revocation answer came from, such as "OCSP (document security store)".

```csharp
public string? RevocationSource { get; }
```

#### Property Value

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

### <a id="PdfNetStack_Signing_PdfCertificateCheck_RevocationTime"></a> RevocationTime

When the certificate was revoked, when revocation data says it was.

```csharp
public DateTimeOffset? RevocationTime { get; }
```

#### Property Value

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

### <a id="PdfNetStack_Signing_PdfCertificateCheck_Validity"></a> Validity

The validation time lies within the certificate's validity period.

```csharp
public PdfCheckStatus Validity { get; }
```

#### Property Value

 [PdfCheckStatus](https://www.jadev-corp.com/api/pdfnetstack-signing/pdfcheckstatus/)

## 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/pdfcertificatecheck/
