Registro THPDFSignatureInfo
Describe una firma PDF cargada, desde las identidades del certificado hasta la cobertura del rango de bytes y el veredicto de verificación
Declaración
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;
Unidad
HPDFSignVerify
Campos
| Campo | Propósito |
|---|---|
FieldName | Nombre parcial del campo de formulario de la firma |
SubFilter | Valor de la entrada /SubFilter del diccionario de firma |
SignerName | CN del sujeto del certificado del firmante |
SubjectDN | Nombre distinguido de sujeto del certificado, renderizado |
IssuerDN | Nombre distinguido de emisor del certificado, renderizado |
SerialNumberHex | Número de serie del certificado, codificado en hexadecimal |
ValidFrom | notBefore del certificado, 0 cuando está ausente |
ValidTo | notAfter del certificado, 0 cuando está ausente |
SigningTime | Atributo firmado 1.2.840.113549.1.9.5, si no la entrada /M, si no 0 |
HashAlgorithm | Familia de digest: SHA-1, SHA-2, SHA-3 o SHAKE256 |
DigestAlgorithmOID | Identificador de objeto del algoritmo de digest |
DigestConsistencyIssue | Desajuste detectado entre los algoritmos de digest dentro de la estructura CMS |
SignaturePolicy | Detalles de la política de firma cuando la firma lleva una política |
Reason | Valor de la entrada /Reason |
Location | Valor de la entrada /Location |
ContactInfo | Valor de la entrada /ContactInfo |
ByteRange | Pares de offset y longitud del /ByteRange que describen los intervalos de bytes cubiertos |
CoversWholeDocument | True cuando el rango de bytes cubre todo el archivo salvo el hueco del /Contents |
SignedRevisionLength | Longitud del prefijo de la fuente cubierto por esta firma |
UnsignedTrailingBytes | Bytes añadidos después de la revisión firmada |
CertificateTimeValidity | Si la hora de firma cae dentro de la ventana de validez del certificado |
Status | Veredicto de verificación de tipo THPDFSignatureVerifyStatus |
PublicKeyAlgorithm | Familia de clave pública: RSA, ECDSA, EdDSA o ML-DSA |
SignatureAlgorithm | Nombre del algoritmo de firma CMS |
SignatureAlgorithmOID | Identificador de objeto del algoritmo de firma |
CurveName | Nombre de curva ECDSA, como P-256 |
Timestamp | Detalles del timestamp de firma o de documento RFC 3161 |
CMSAttributes | Resumen de los atributos CMS firmados |
CertificateValidation | Resultado de la validación de la cadena de certificados |
Notas de uso
GetLoadedSignatureInfodevuelve los campos descriptivos;VerifyLoadedSignatureyVerifyLoadedSignatureExrellenan los campos de estado y validación tras comprobar los digestsCoversWholeDocumentjunto conUnsignedTrailingBytesmuestra si revisiones posteriores cambiaron el documento después de firmar- El mismo registro alimenta la validación de certificados, así que una sola llamada cubre identidades, cobertura, algoritmos y comprobaciones de cadena