PDFium Delphi Component Docs

Métodos ValidatePadesTrust

Componente: TPdf  ·  Unidad: PDFium
Valida la integridad de las firmas PAdES, la confianza actual del sistema, la evidencia de revocación opcional y los tokens de marca de tiempo RFC 3161

Sintaxis

function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;

function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean;

Descripción

Ambos métodos capturan el archivo original exacto, el búfer de memoria, el flujo personalizado o la fuente progresiva completada que retiene el componente activo, y nunca validan una copia guardada de nuevo por PDFium

Cada firma ordinaria se comprueba contra su ByteRange original, los atributos firmados CMS y el valor de la firma, el enlace signing-certificate-v2, la cadena de certificados actual del backend configurado y la evidencia de revocación opcional

Las marcas de tiempo de firma y las marcas de tiempo de documento validan adicionalmente su huella de mensaje SHA-256, la firma CMS adjunta, la cadena de la TSA y el estado de revocación opcional

El certificado del firmante del sello de tiempo debe tener una extensión Extended Key Usage crítica que contenga únicamente id-kp-timeStamping, como exige RFC 3161 sección 2.3; una EKU ausente, no crítica, mixta o distinta produce un TimeStampTrustStatus inválido, aunque la firma CMS del token y la cadena básica de certificados sean válidas; la firma externa del documento conserva sus resultados independientes

La sobrecarga asincrónica captura la fuente antes del despacho y reporta la finalización mediante TPadesTrustValidationReply

Opciones

NetworkPolicyptnpOffline usa solo datos de certificados en caché, mientras que ptnpOnline permite la recuperación de cadenas de Windows
CheckRevocationSolicita la evaluación de revocación de la cadena del backend configurado; Windows excluye el certificado raíz, mientras que OpenSSL comprueba las CRL configuradas contra la cadena
CheckTimeStampsValida los tokens de marca de tiempo de firma y de marca de tiempo de documento cuando están presentes
UrlRetrievalTimeoutMsAcota la recuperación nativa de URL que usan el procesamiento de cadena y de revocación
QualifiedTrustEvaluatorOpcionalmente evalúa el firmante y la cadena recolectada contra una instantánea autenticada sin conexión de lista de confianza
QualifiedValidationTimeSelecciona la hora de evaluación UTC del historial de servicio; con cero se usa la hora actual
CancellationTokenSe detiene en el siguiente límite de etapa de validación
OnProgressRecibe la etapa, el índice de firma, el conteo de firmas y el porcentaje general

Resultado

TPadesValidationResult.Signatures reporta valores independientes de ByteRangeStatus, CmsSignatureStatus, AlgorithmPolicyStatus, SigningCertificateStatus, CertificateTrustStatus, QualifiedTrustStatus, RevocationStatus, TimeStampStatus, TimeStampSignatureStatus, TimeStampTrustStatus y TimeStampRevocationStatus, mientras que QualifiedTrust identifica el territorio, el proveedor, el servicio, el tipo, el estado y la hora de inicio coincidentes

AlgorithmInfo registra los OID de resumen y de firma CMS, además de los OID de clave pública y de curva con nombre del certificado de firmante, y aplica las reglas de ISO/TS 32002 para NIST, Brainpool, Ed25519, Ed448 y de curva a resumen antes de aceptar la integridad

Los algoritmos no soportados, los servicios de confianza de la plataforma no disponibles, la evidencia de revocación incompleta y la validación cancelada no se promueven a estados válidos

Cada entrada de firma incluye RevocationReason y NativeRevocationError de su verificación CMS, más TimeStampRevocationReason y NativeTimeStampRevocationError independientes de la verificación del token de timestamp. Los campos de razón usan TPdfCmsRevocationReason; los campos de error nativo son valores Cardinal en el espacio de errores del backend seleccionado, como los códigos X509_V_ERR_* de OpenSSL o un DWORD sin procesar del proveedor de Windows o de GetLastError. Los valores de Windows se preservan sin conversión a un espacio HRESULT común

El par de timestamp describe un timestamp de firma incrustado o una marca de tiempo de documento, sin sobrescribir el par de la firma ordinaria. Los diagnósticos de timestamp se llenan solo después de que las comprobaciones de estructura del token y de huella de mensaje permiten ejecutar la verificación CMS

Con CheckRevocation = False, las razones de diagnóstico permanecen en pcrrNone y los errores en cero. Los mismos valores por omisión aplican cuando una comprobación no se alcanza o su backend no suministra una razón detallada, así que lea siempre el estado correspondiente en lugar de tratar un diagnóstico vacío como éxito

Notas

Ejemplo

var
  Options: TPadesTrustValidationOptions;
  Validation: TPadesValidationResult;
begin
  Options := TPadesTrustValidationOptions.Default;
  Options.NetworkPolicy := ptnpOnline;
  Options.CheckRevocation := True;
  Validation := Pdf1.ValidatePadesTrust(Options);
end;

Ver también

ValidatePades FPdfTrustedList AnalyzeSignatureRevisions RenewPadesArchiveTimestamp