---
title: "Certificate"
description: "Namespace: Lacuna.Pki"
canonical: "https://docs.lacunasoftware.com/api/Lacuna.Pki/Certificate"
locale: "pt-BR"
product: "PKI SDK"
last_updated: "2026-06-02"
---

# Certificate

**Namespace:** `Lacuna.Pki`  
**Assembly:** `Lacuna.Pki`  
_Class_

```csharp
public abstract class Certificate
```

**Hierarquia:** [`object`](https://learn.microsoft.com/dotnet/api/system.object) → `Certificate`

## Construtores

### `Certificate()`

```csharp
protected Certificate()
```

---

## Campos

### `issuer`

```csharp
protected PKCertificate issuer
```

**Retorno**

[`PKCertificate`](https://docs.lacunasoftware.com/api/Lacuna.Pki/PKCertificate)

---

## Propriedades

### `AuthorityInformationAccess`

```csharp
protected AuthorityInformationAccess AuthorityInformationAccess { get; }
```

**Retorno**

[`AuthorityInformationAccess`](https://docs.lacunasoftware.com/api/Lacuna.Pki/AuthorityInformationAccess)

---

### `CAIssuersUri`

```csharp
public Uri CAIssuersUri { get; }
```

**Retorno**

[`Uri`](https://learn.microsoft.com/dotnet/api/system.uri)

---

### `EncodedValue`

```csharp
public byte[] EncodedValue { get; protected set; }
```

**Retorno**

[`byte[]`](https://learn.microsoft.com/dotnet/api/system.byte)

---

### `Extensions`

```csharp
public X509Extensions Extensions { get; protected set; }
```

**Retorno**

[`X509Extensions`](https://docs.lacunasoftware.com/api/Lacuna.Pki/X509Extensions)

---

### `IsSelfSigned`

Denotes whether this is a self-signed certificate (root certificate) or not.

NOTICE: never test the condition Issuer==null to assertain if a certificate is self-signed,
since that condition may throw an exception in case the certificate is not a self-signed certificate but its
issuer could not be located. For such purposes, use this property instead.

```csharp
public abstract bool IsSelfSigned { get; }
```

**Retorno**

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

---

### `Issuer`

The certificate's issuer public key certificate, or null if the certificate is self-signed. If
the certificate is not self signed but the issuer cannot be found, this property throws a
CertificateIssuerNotFoundException. In order to check if the issuer was found, use the property
IssuerFound before calling this property.

NOTICE: never test the condition Issuer==null to assertain if a PKCertificate is self-signed. For
such purposes, use the property IsSelfSigned instead.

```csharp
public PKCertificate Issuer { get; }
```

**Retorno**

[`PKCertificate`](https://docs.lacunasoftware.com/api/Lacuna.Pki/PKCertificate)

---

### `IssuerDisplayName`

```csharp
public abstract string IssuerDisplayName { get; }
```

**Retorno**

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

---

### `IssuerDN`

```csharp
protected abstract Name IssuerDN { get; }
```

**Retorno**

[`Name`](https://docs.lacunasoftware.com/api/Lacuna.Pki/Name)

---

### `IssuerFound`

Denotes whether the certificate's issuer was found. Returns false for self-signed certificates.

NOTICE: this property is not exactly a negation of the IssuerNotFound property, since both properties
return false for self-signed certificates.

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

**Retorno**

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

---

### `IssuerKeyIdentifier`

```csharp
public byte[] IssuerKeyIdentifier { get; }
```

**Retorno**

[`byte[]`](https://learn.microsoft.com/dotnet/api/system.byte)

---

### `IssuerNotFound`

Denothes whether the certificate's issuer was not found. Returns false for self-signed certificates.

NOTICE: this property is not exactly a negation of the IssuerFound property, since both properties
return false for self-signed certificates.

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

**Retorno**

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

---

### `OcspUri`

```csharp
public Uri OcspUri { get; }
```

**Retorno**

[`Uri`](https://learn.microsoft.com/dotnet/api/system.uri)

---

### `SerialNumber`

```csharp
public BigInteger SerialNumber { get; protected set; }
```

**Retorno**

[`BigInteger`](https://learn.microsoft.com/dotnet/api/system.numerics.biginteger)

---

### `SignatureAlgorithm`

```csharp
public SignatureAlgorithm SignatureAlgorithm { get; protected set; }
```

**Retorno**

[`SignatureAlgorithm`](https://docs.lacunasoftware.com/api/Lacuna.Pki/SignatureAlgorithm)

---

### `SignatureValue`

```csharp
public byte[] SignatureValue { get; protected set; }
```

**Retorno**

[`byte[]`](https://learn.microsoft.com/dotnet/api/system.byte)

---

### `SubjectDisplayName`

```csharp
public abstract string SubjectDisplayName { get; }
```

**Retorno**

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

---

### `TbsCertificateEncoded`

```csharp
protected byte[] TbsCertificateEncoded { get; }
```

**Retorno**

[`byte[]`](https://learn.microsoft.com/dotnet/api/system.byte)

---

### `ThumbprintSHA1`

```csharp
public byte[] ThumbprintSHA1 { get; }
```

**Retorno**

[`byte[]`](https://learn.microsoft.com/dotnet/api/system.byte)

---

### `ThumbprintSHA256`

```csharp
public byte[] ThumbprintSHA256 { get; }
```

**Retorno**

[`byte[]`](https://learn.microsoft.com/dotnet/api/system.byte)

---

### `TrustAnchor`

Returns the trust anchor for this certificate, that is, the root certificate at the top of the
certification chain. Throws a CertificateIssuerNotFoundException if the certification chain cannot
be determined all the way to a root certificate.

```csharp
public PKCertificate TrustAnchor { get; }
```

**Retorno**

[`PKCertificate`](https://docs.lacunasoftware.com/api/Lacuna.Pki/PKCertificate)

---

### `ValidityEnd`

```csharp
public DateTimeOffset ValidityEnd { get; protected set; }
```

**Retorno**

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

---

### `ValidityStart`

```csharp
public DateTimeOffset ValidityStart { get; protected set; }
```

**Retorno**

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

---

## Métodos

### `Equals(object)`

```csharp
public override bool Equals(object other)
```

**Parâmetros**

| Nome | Tipo | Descrição |
|---|---|---|
| `other` | [`object`](https://learn.microsoft.com/dotnet/api/system.object) |  |

**Retorno**

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

---

### `GetCertificateChain()`

Returns the certificate chain from this certificate up to the root certificate

```csharp
public List<Certificate> GetCertificateChain()
```

**Retorno**

[`List<Certificate>`](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1) — The complete certificate chain, starting with this certificate and ending on the root certificate.

---

### `GetHashCode()`

```csharp
public override int GetHashCode()
```

**Retorno**

[`int`](https://learn.microsoft.com/dotnet/api/system.int32)

---

### `GetTbsCertificateEncoded()`

```csharp
protected abstract byte[] GetTbsCertificateEncoded()
```

**Retorno**

[`byte[]`](https://learn.microsoft.com/dotnet/api/system.byte)

---

### `TryFillIssuer(ICertificateStore)`

```csharp
protected void TryFillIssuer(ICertificateStore certStore)
```

**Parâmetros**

| Nome | Tipo | Descrição |
|---|---|---|
| `certStore` | [`ICertificateStore`](https://docs.lacunasoftware.com/api/Lacuna.Pki.Stores/ICertificateStore) |  |

---

### `Validate(CertificateValidationOptions)`

```csharp
public ValidationResults Validate(CertificateValidationOptions validationOptions)
```

**Parâmetros**

| Nome | Tipo | Descrição |
|---|---|---|
| `validationOptions` | [`CertificateValidationOptions`](https://docs.lacunasoftware.com/api/Lacuna.Pki/CertificateValidationOptions) |  |

**Retorno**

[`ValidationResults`](https://docs.lacunasoftware.com/api/Lacuna.Pki/ValidationResults)

---

### `Validate(ITrustArbitrator)`

```csharp
public ValidationResults Validate(ITrustArbitrator trustArbitrator)
```

**Parâmetros**

| Nome | Tipo | Descrição |
|---|---|---|
| `trustArbitrator` | [`ITrustArbitrator`](https://docs.lacunasoftware.com/api/Lacuna.Pki/ITrustArbitrator) |  |

**Retorno**

[`ValidationResults`](https://docs.lacunasoftware.com/api/Lacuna.Pki/ValidationResults)

---

## Membros herdados

[`ToString()`](https://learn.microsoft.com/dotnet/api/system.object.tostring), [`Equals(object, object)`](<https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)>), [`ReferenceEquals(object, object)`](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [`GetType()`](https://learn.microsoft.com/dotnet/api/system.object.gettype), [`MemberwiseClone()`](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone)
