THPDFSignatureInfo Record
Descreve uma assinatura PDF carregada, das identidades de certificados à cobertura de byte range e ao veredito de verificação
Declaração
THPDFSignatureInfo= record
FieldName: AnsiString; // signature form field partial name
SubFilter: AnsiString; // /SubFilter of the signature dictionary
SignerName: AnsiString; // CN of the signer certificate subject
SubjectDN: AnsiString; // rendered subject distinguished name
IssuerDN: AnsiString; // rendered issuer distinguished name
SerialNumberHex: AnsiString; // certificate serial number, hex encoded
ValidFrom: TDateTime; // certificate notBefore (0 when absent)
ValidTo: TDateTime; // certificate notAfter (0 when absent)
SigningTime: TDateTime; // signed attribute 1.2.840.113549.1.9.5,
// else the /M entry, else 0
HashAlgorithm: AnsiString; // SHA-1, SHA-2, SHA-3, or SHAKE256
DigestAlgorithmOID: AnsiString;
DigestConsistencyIssue: THPDFCMSDigestConsistencyIssue;
SignaturePolicy: THPDFSignaturePolicyInfo;
Reason: AnsiString; // /Reason from the signature dictionary
Location: AnsiString; // /Location
ContactInfo: AnsiString; // /ContactInfo
ByteRange: array of Int64; // /ByteRange pairs (offset, length, ...)
CoversWholeDocument: boolean; // ByteRange spans the file except /Contents
SignedRevisionLength: Int64; // source prefix covered by this signature
UnsignedTrailingBytes: Int64; // bytes appended after the signed revision
CertificateTimeValidity: THPDFSignatureTimeValidity;
Status: THPDFSignatureVerifyStatus;
PublicKeyAlgorithm: AnsiString; // RSA, ECDSA, EdDSA, or ML-DSA
SignatureAlgorithm: AnsiString; // CMS signature algorithm name
SignatureAlgorithmOID: AnsiString;
CurveName: AnsiString; // ECDSA curve, such as 'P-256'
Timestamp: THPDFTimestampInfo; // RFC 3161 signature or document timestamp
CMSAttributes: THPDFCMSAttributeSummary;
CertificateValidation: THPDFCertificateValidationInfo;
end;
Unidade
HPDFSignVerify
Campos
| Campo | Finalidade |
|---|---|
FieldName | Nome parcial do campo de formulário da assinatura |
SubFilter | Valor da entrada /SubFilter no dicionário de assinatura |
SignerName | CN do subject do certificado do signatário |
SubjectDN | Subject distinguished name renderizado do certificado |
IssuerDN | Issuer distinguished name renderizado do certificado |
SerialNumberHex | Número de série do certificado, codificado em hex |
ValidFrom | notBefore do certificado, 0 quando ausente |
ValidTo | notAfter do certificado, 0 quando ausente |
SigningTime | Atributo assinado 1.2.840.113549.1.9.5, senão a entrada /M, senão 0 |
HashAlgorithm | Nome da família de digest: SHA-1, SHA-2, SHA-3 ou SHAKE256 |
DigestAlgorithmOID | Identificador de objeto do algoritmo de digest |
DigestConsistencyIssue | Divergência detectada entre algoritmos de digest dentro da estrutura CMS |
SignaturePolicy | Detalhes da política de assinatura quando a assinatura carrega uma política |
Reason | Valor da entrada /Reason |
Location | Valor da entrada /Location |
ContactInfo | Valor da entrada /ContactInfo |
ByteRange | Pares de offset e comprimento do /ByteRange descrevendo os intervalos de bytes cobertos |
CoversWholeDocument | True quando o byte range cobre o arquivo inteiro exceto a lacuna do /Contents |
SignedRevisionLength | Comprimento do prefixo da fonte coberto por esta assinatura |
UnsignedTrailingBytes | Bytes anexados após a revisão assinada |
CertificateTimeValidity | Se o horário de assinatura cai dentro da janela de validade do certificado |
Status | Veredito de verificação do tipo THPDFSignatureVerifyStatus |
PublicKeyAlgorithm | Família de chave pública: RSA, ECDSA, EdDSA ou ML-DSA |
SignatureAlgorithm | Nome do algoritmo de assinatura CMS |
SignatureAlgorithmOID | Identificador de objeto do algoritmo de assinatura |
CurveName | Nome da curva ECDSA, como P-256 |
Timestamp | Detalhes do timestamp de assinatura ou de documento RFC 3161 |
CMSAttributes | Resumo dos atributos CMS assinados |
CertificateValidation | Desfecho da validação da cadeia de certificados |
Notas de uso
GetLoadedSignatureInforetorna os campos descritivos;VerifyLoadedSignatureeVerifyLoadedSignatureExpreenchem os campos de status e validação depois de conferir os digestsCoversWholeDocumentjunto comUnsignedTrailingBytesmostra se revisões posteriores alteraram o documento depois da assinatura- O mesmo record alimenta a validação de certificados, então uma única chamada cobre identidades, cobertura, algoritmos e checagens de cadeia