ApplyPAdESLongTermValidation
Firmas digitales
Descripción
Promueve en una sola llamada un PDF ya firmado a PAdES-B-LT 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 aumentado 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) | Consulta al respondedor OCSP de cada enlace |
PADES_LTV_FETCH_CRL (4) | Recurre a la CRL cuando OCSP no devolvió nada |
PADES_LTV_FOLLOW_AIA (8) | Sigue las direcciones de emisores para completar la ruta |
PADES_LTV_SKIP_EXISTING (16) | No vuelva a añadir 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 añadir el almacén de seguridad del documento |
| 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 se crea desde el CMS de la firma y sigue caIssuers si PADES_LTV_FOLLOW_AIA. Recopila OCSP y luego CRL por enlace y escribe certificados y revocación en DSS mediante una actualización
El material idéntico se escribe una vez y lo referencian todas las firmas. Solo se escribe VRI si tiene certificado, evitando entradas vacías
Un respondedor inaccesible no hace que falle la llamada: la promoción continúa con todo lo recopilado, y GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount y GetPAdESLTVError indican qué se obtuvo y por qué faltan otros elementos
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