ApplyPAdESLongTermValidation

Ψηφιακές υπογραφές

Περιγραφή

Αναβαθμίζει ήδη υπογεγραμμένο PDF σε PAdES-B-LT σε μία κλήση, γράφοντας το αποτέλεσμα σε αρχείο

Σύνταξη

Delphi

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

Παράμετροι

InputFileΤο υπογεγραμμένο PDF
PasswordΟ κωδικός πρόσβασης για το άνοιγμά του ή μια κενή συμβολοσειρά
OutputFileΤο εμπλουτισμένο PDF προς εγγραφή
FieldNameSignature field προς επεξεργασία, ή κενή συμβολοσειρά για επεξεργασία κάθε υπογραφής σε μία αναθεώρηση
OptionsA PADES_LTV_* bit mask; 0 selects PADES_LTV_DEFAULT.

Επιλογές

PADES_LTV_WRITE_VRI (1)Γράφει εγγραφή VRI για κάθε υπογραφή
PADES_LTV_FETCH_OCSP (2)Ερώτημα του OCSP responder κάθε συνδέσμου
PADES_LTV_FETCH_CRL (4)Υποχώρηση σε CRL όταν το OCSP δεν επέστρεψε τίποτα
PADES_LTV_FOLLOW_AIA (8)Ακολούθηση διευθύνσεων εκδότη για συμπλήρωση της διαδρομής
PADES_LTV_SKIP_EXISTING (16)Να μην προστίθεται ξανά υλικό με bytes που είναι ήδη staged
PADES_LTV_SKIP_ROOT_REVOCATION (32)Να μην γίνεται ερώτημα για την κατάσταση self-issued root
PADES_LTV_DEFAULT (63)Όλα τα παραπάνω· επιλέγεται όταν το Options είναι 0

Τιμές επιστροφής

1The promotion succeeded.
2Το αρχείο εισόδου δεν μπόρεσε να διαβαστεί
3Το PDF εισόδου δεν μπόρεσε να αναλυθεί
10Η έξοδος δεν μπόρεσε να γραφτεί
11Το document security store δεν μπόρεσε να προστεθεί
20No such signature field.
21Καμία επεξεργασμένη υπογραφή δεν έφερε αναγνώσιμο πιστοποιητικό

Το GetPAdESLTVError δίνει την αιτία για κάθε τιμή διάφορη του 1.

Παρατηρήσεις

The signer certificate path is built from the signature's own CMS, and the remaining issuers are followed through the caIssuers addresses the certificates name when PADES_LTV_FOLLOW_AIA is set. Revocation is gathered for each link - OCSP first, then a CRL - and, with the certificates, written into the document security store by a single incremental update.

Υλικό πανομοιότυπο με κάτι ήδη staged γράφεται μία φορά και αναφέρεται από κάθε υπογραφή που το χρειάζεται, ώστε αρχή πιστοποίησης κοινή στη διαδρομή ή στις υπογραφές να μην εμφανίζεται δύο φορές. Εγγραφή VRI γράφεται μόνο όταν έχει πιστοποιητικό να δείξει, οπότε κενή εγγραφή δεν παράγεται ποτέ

Μη προσβάσιμος responder δεν αποτυγχάνει την κλήση: η προαγωγή συνεχίζεται με ό,τι συλλέχθηκε, και τα GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount και GetPAdESLTVError αναφέρουν τι βρέθηκε και γιατί χάθηκε κάτι.

Παράδειγμα

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

Δείτε επίσης

ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates