---
title: "Ciclo de vida da assinatura AD-RT"
description: "Ciclo de vida da assinatura AD-RT da ICP-Brasil: por quanto tempo ela continua verificável e como o PKI SDK a estende com as políticas AD-RC e AD-RA."
canonical: "https://docs.lacunasoftware.com/articles/pki-sdk/signatures/policies/adrt-lifecycle"
locale: "pt-BR"
product: "PKI SDK"
last_updated: "2026-10-11"
---

# Ciclo de vida da assinatura AD-RT

Uma assinatura **AD-RT** da ICP-Brasil (Referência de Tempo) é uma assinatura básica (AD-RB) com um **carimbo de tempo da assinatura**,
emitido por uma autoridade de carimbo de tempo (ACT) ICP-Brasil. O carimbo prova quando a assinatura foi feita, por isso a assinatura
sobrevive ao certificado do signatário. Mas ela não sobrevive ao certificado da ACT. Este artigo mostra por quanto tempo uma assinatura
AD-RT continua verificável e como o PKI SDK a mantém verificável por mais tempo, com as políticas AD-RC e AD-RA.

![O ciclo de vida de uma assinatura AD-RT: as políticas ICP-Brasil e a validade de cada certificado e carimbo](https://docs.lacunasoftware.com/images/pki-sdk/adrt-lifecycle-pt.svg)

Para um caso real, com assinaturas que precisam durar décadas, veja [Revalidação de diplomas](https://docs.lacunasoftware.com/articles/digiploma/revalidation), que
mostra como o [Digiploma](https://docs.lacunasoftware.com/articles/digiploma) mantém os diplomas digitais verificáveis.

## Criar uma assinatura AD-RT

A política AD-RT exige um carimbo de tempo da assinatura, por isso o assinador precisa de um requisitante de carimbo de tempo. O exemplo
abaixo assina um elemento de um documento XML (XAdES):

```cs
var signer = new XmlElementSigner();
signer.SetSigningCertificate(cert);       // certificado do signatário, com a chave privada
signer.SetXml(xmlDocument);
signer.SetToSignElementId(id);
signer.SetPolicy(XmlPoliciesForGeneration.GetPkiBrazilAdrTempo());

// autoridade de carimbo de tempo (ACT) ICP-Brasil
var tsaUri = new Uri("https://act.exemplo.com.br/");
signer.SetTimestampRequester(new TimestampRequester(tsaUri, accessToken));

signer.ComputeSignature();                // lança TimestampException se não conseguir o carimbo
var signedXml = signer.GetSignedXml();
```

A mesma política existe para os outros formatos: `CadesPoliciesForGeneration.GetPkiBrazilAdrTempo()` (CAdES) e
`PadesPoliciesForGeneration.GetPkiBrazilAdrTempo()` (PAdES).

## Por quanto tempo ela continua verificável

| Período | Verificável? | Por quê |
|---|---|---|
| Enquanto o certificado do signatário for válido | Sim | Como qualquer assinatura. |
| Depois que o certificado do signatário expira | Sim | O carimbo de tempo da assinatura prova que ela foi feita enquanto o certificado era válido. |
| Depois que o certificado da ACT expira | Não | O próprio carimbo de tempo da assinatura não pode mais ser verificado. |

Uma assinatura AD-RT também não guarda os certificados e as LCRs usados na validação: validá-la mais tarde depende de obtê-los nos
repositórios das autoridades certificadoras.

Para saber até quando uma assinatura AD-RT pode ser verificada, leia o certificado do carimbo de tempo da assinatura:

```cs
var signature = XmlSignatureEditor.Open(signedXml).Signatures.First();
var timestamp = signature.SignatureTimestamps.Last().EncapsulatedTimestamp;
var verifiableUntil = timestamp.Signers.First().SigningCertificate.ValidityEnd;
```

## Manter a assinatura verificável

Cada política ICP-Brasil acrescenta evidências à anterior:

* **AD-RC** (Referências Completas, `XmlPoliciesForGeneration.GetPkiBrazilAdrCompleta()`) acrescenta as referências e os valores dos
  certificados e das LCRs usados na validação, e um carimbo de tempo sobre a assinatura e essas referências. Ela não depende mais dos
  repositórios das autoridades certificadoras, mas os carimbos dela também expiram.
* **AD-RA** (Referências para Arquivamento, `XmlPoliciesForGeneration.GetPkiBrazilAdrArquivamento()`) acrescenta um **carimbo de tempo
  de arquivamento**. Antes que ele expire, um novo carimbo de arquivamento, emitido com um certificado mais recente da ACT, é acrescentado
  sobre tudo. Renovada a tempo, a assinatura continua verificável indefinidamente.

O `XmlSignatureEditor.ExtendArchiving` acrescenta esse novo carimbo de arquivamento. Ele primeiro registra os dados de validação do carimbo
de arquivamento anterior e depois carimba a assinatura de novo:

```cs
var editor = XmlSignatureEditor.Open(signedXml);
var signature = editor.Signatures.First(s => s.ArchiveTimestamps.Any());

var expiresOn = signature.ArchiveTimestamps.Last().EncapsulatedTimestamp.Signers.First().SigningCertificate.ValidityEnd;
if (expiresOn < DateTimeOffset.Now.AddDays(180)) {
    var renewedXml = editor.ExtendArchiving(signature, timestampRequester, XmlPoliciesForValidation.GetPkiBrazil());
    // Guarde renewedXml no lugar do arquivo anterior
}
```

O `ExtendArchiving` lança `InvalidArchiveOperationException` quando:

* a assinatura não é válida;
* nenhum dos carimbos de arquivamento dela pode ser validado;
* o novo carimbo é assinado pelo mesmo certificado de um carimbo de arquivamento anterior, o que não estenderia o vencimento. Passe
  `ignoreSameTsSigner: true` para aceitá-lo mesmo assim.

> **Cuidado: Assinaturas AD-RT e AD-RC não podem ser estendidas**
>
> O `ExtendArchiving` exige uma política com carimbo de arquivamento: numa assinatura AD-RT ou AD-RC, ele falha. Para preservar essas
> assinaturas, proteja-as com uma assinatura AD-RA sobre o documento inteiro, que as cobre, e renove o carimbo de arquivamento dela. É assim
> que funciona um diploma digital: as assinaturas dos elementos `DadosDiploma` e `DadosRegistro` são cobertas pela assinatura de
> arquivamento do XML inteiro.

## Veja também

* [Revalidação de diplomas](https://docs.lacunasoftware.com/articles/digiploma/revalidation) (Digiploma)
* [Políticas ICP-Brasil](https://docs.lacunasoftware.com/articles/pki-sdk/signatures/policies/pki-brazil)
* [XmlSignatureEditor](https://docs.lacunasoftware.com/api/Lacuna.Pki.Xml/XmlSignatureEditor)
* [XmlPoliciesForGeneration](https://docs.lacunasoftware.com/api/Lacuna.Pki.Xml/XmlPoliciesForGeneration)
