ApplyPAdESLongTermValidation

Signatures numériques

Description

Fait passer un PDF déjà signé au niveau PAdES-B-LT en un seul appel et écrit le résultat dans un fichier

Syntaxe

Delphi

Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;

Paramètres

InputFilePDF signé
PasswordMot de passe permettant de l’ouvrir, ou chaîne vide
OutputFilePDF augmenté à écrire
FieldNameUn champ de signature à traiter, ou une chaîne vide pour traiter chaque signature dans une seule révision
OptionsUn masque de bits PADES_LTV_* ; 0 sélectionne PADES_LTV_DEFAULT

Options

PADES_LTV_WRITE_VRI (1)Écrit une entrée VRI pour chaque signature
PADES_LTV_FETCH_OCSP (2)Interroge le répondeur OCSP de chaque lien
PADES_LTV_FETCH_CRL (4)Se rabat sur la CRL lorsqu’OCSP n’a rien renvoyé
PADES_LTV_FOLLOW_AIA (8)Suit les adresses des émetteurs pour compléter le chemin
PADES_LTV_SKIP_EXISTING (16)Ne rajoute pas les données dont les octets sont déjà préparés
PADES_LTV_SKIP_ROOT_REVOCATION (32)Ne pas demander l’état d’une racine autoémise
PADES_LTV_DEFAULT (63)Toutes les options ci-dessus ; sélectionnées lorsque Options vaut 0

Valeurs de retour

1La promotion a réussi
2Le fichier d’entrée n’a pas pu être lu
3Le PDF d’entrée n’a pas pu être analysé
10Impossible d’écrire la sortie
11Le magasin de sécurité du document n’a pas pu être ajouté
20Ce champ de signature n’existe pas
21Aucune signature traitée ne comportait de certificat lisible

GetPAdESLTVError indique la raison de toute valeur différente de 1

Remarques

Le chemin de certificat est construit depuis le CMS de la signature, puis les émetteurs restants sont suivis aux adresses caIssuers lorsque PADES_LTV_FOLLOW_AIA est défini. La révocation est recueillie pour chaque lien, OCSP puis CRL, et écrite avec les certificats dans le magasin de sécurité par une mise à jour incrémentielle unique

Le matériel identique à un élément déjà préparé est écrit une fois puis référencé par chaque signature qui en a besoin ; une autorité de certification partagée dans le chemin ou entre signatures n’apparaît donc pas deux fois. Une entrée VRI n’est écrite que si elle possède un certificat à référencer, et aucune entrée vide n’est produite

Un répondeur inaccessible ne fait pas échouer l’appel : la promotion continue avec les données recueillies, et GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount et GetPAdESLTVError indiquent le résultat et les éléments manquants

Exemple

PDF.SetTimeStampOptions(2, 1, 1, 15000, '');
if PDF.ApplyPAdESLongTermValidation('signed.pdf', '', 'signed-lt.pdf', '', 0)<> 1 then
  ShowMessage(PDF.GetPAdESLTVError);

Voir aussi

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates