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
| InputFile | PDF signé |
|---|---|
| Password | Mot de passe permettant de l’ouvrir, ou chaîne vide |
| OutputFile | PDF augmenté à écrire |
| FieldName | Un champ de signature à traiter, ou une chaîne vide pour traiter chaque signature dans une seule révision |
| Options | Un 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
| 1 | La promotion a réussi |
|---|---|
| 2 | Le fichier d’entrée n’a pas pu être lu |
| 3 | Le PDF d’entrée n’a pas pu être analysé |
| 10 | Impossible d’écrire la sortie |
| 11 | Le magasin de sécurité du document n’a pas pu être ajouté |
| 20 | Ce champ de signature n’existe pas |
| 21 | Aucune 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