SetPAdESSignatureTimeStampToken

Segurança e Assinaturas

Descrição

Valida um TimeStampToken RFC 3161 codificado em DER e o injeta como atributo não assinado id-aa-signatureTimeStampToken no SignerInfo CMS selecionado

O método verifica a assinatura do token, exige que o único extended key usage crítico seja timeStamping, confere um nome de TSA codificado quando presente, e compara o message imprint do token com o digest configurado do signatureValue do signer

Os atributos de signature timestamp existentes no signer selecionado são substituídos, atributos não assinados não relacionados são preservados e o conjunto de atributos reconstruído é ordenado em DER

Sintaxe

Delphi

Function TPDFlib.SetPAdESSignatureTimeStampToken(STSProcessID: Integer;
  Const TimeStampTokenDER: AnsiString; SignerIndex: Integer= 0): Integer;

Parâmetros

STSProcessIDValor retornado por uma das funções NewPAdESSignatureTimeStampProcessFrom*
TimeStampTokenDERTimeStampToken RFC 3161 completo, codificado em DER, retornado pela TSA
SignerIndexÍndice do signer CMS com base zero, com padrão o primeiro signer

Valores retornados

0O identificador do processo é inválido
1O token foi validado e injetado
11O token, o CMS, o signer selecionado, as restrições da TSA ou o message imprint é inválido
OtherO PDF de origem ou a assinatura selecionada não pôde ser preparado, conforme reportado por GetPAdESSignatureTimeStampProcessResult

Fluxo de trabalho

  1. Reserve espaço de contents da assinatura suficiente com SetSignProcessReserveContentsBytes antes de criar a assinatura original
  2. Criar um processo de carimbo de tempo e selecionar o campo de assinatura e o algoritmo de digest
  3. Chame GetPAdESSignatureValueHashHex e envie esse message imprint à TSA
  4. Passe o TimeStampToken retornado a este método
  5. Finalize com um método EndPAdESSignatureTimeStampProcessTo*

A biblioteca valida e reescreve o CMS, mas não executa a requisição HTTP à TSA

Veja também

GetPAdESSignatureValueHashHex, SetPAdESSignatureTimeStampDigestAlgorithm, SetSignProcessReserveContentsBytes, TPDFlibSignatureVerifier