ApplyPAdESLongTermValidation
Firmas digitales
Descripción
Promueve un PDF ya firmado a PAdES-B-LT en una sola llamada y escribe el resultado en un archivo
Sintaxis
Delphi
Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;Parámetros
| InputFile | El PDF firmado |
|---|---|
| Password | La contraseña para abrirlo o una cadena vacía |
| OutputFile | El PDF ampliado que se escribirá |
| FieldName | Un campo de firma que se procesará o una cadena vacía para procesar todas las firmas en una revisión |
| Options | Una máscara de bits PADES_LTV_*; 0 selecciona PADES_LTV_DEFAULT |
Opciones
PADES_LTV_WRITE_VRI (1) | Escribe una entrada VRI para cada firma |
|---|---|
PADES_LTV_FETCH_OCSP (2) | Consulte el respondedor OCSP de cada vínculo |
PADES_LTV_FETCH_CRL (4) | Recurra a la CRL cuando OCSP no devuelva nada |
PADES_LTV_FOLLOW_AIA (8) | Sigue las direcciones del emisor para completar la ruta |
PADES_LTV_SKIP_EXISTING (16) | No vuelva a agregar material cuyos bytes ya estén preparados |
PADES_LTV_SKIP_ROOT_REVOCATION (32) | No solicite el estado de una raíz autoemitida |
PADES_LTV_DEFAULT (63) | Todo lo anterior; se selecciona cuando Options es 0 |
Valores devueltos
| 1 | La promoción se completó correctamente |
|---|---|
| 2 | No se pudo leer el archivo de entrada |
| 3 | No se pudo analizar el PDF de entrada |
| 10 | No se pudo escribir la salida |
| 11 | No se pudo agregar el almacén de seguridad de documentos |
| 20 | No existe ese campo de firma |
| 21 | Ninguna firma procesada contenía un certificado legible |
GetPAdESLTVError contiene el motivo de cualquier valor distinto de 1
Observaciones
La ruta de certificados del firmante se construye desde el CMS propio de la firma, y los emisores restantes se siguen mediante las direcciones caIssuers que nombran los certificados cuando se establece PADES_LTV_FOLLOW_AIA. Se recopila revocación para cada vínculo —primero OCSP y luego una CRL— y, junto con los certificados, se escribe en el almacén de seguridad del documento mediante una única actualización incremental
El material idéntico a algo ya preparado se escribe una vez y es referenciado por cada firma que lo necesita, por lo que una autoridad certificadora compartida en la ruta o entre firmas no aparece dos veces. Una entrada VRI solo se escribe cuando tiene un certificado al que apuntar, por lo que nunca se genera una entrada vacía
Un respondedor inaccesible no hace que falle la llamada: la promoción continúa con lo que se haya obtenido, y GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount y GetPAdESLTVError informan qué se obtuvo y por qué faltó algo
Ejemplo
PDF.SetTimeStampOptions(2, 1, 1, 15000, '');
if PDF.ApplyPAdESLongTermValidation('signed.pdf', '', 'signed-lt.pdf', '', 0)<> 1 then
ShowMessage(PDF.GetPAdESLTVError);Véase también
ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates