ApplyPAdESLongTermValidation

חתימות דיגיטליות

תיאור

מקדם PDF שכבר חתום אל PAdES-B-LT בקריאה אחת וכותב את התוצאה לקובץ

תחביר

Delphi

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

פרמטרים

InputFileה-PDF החתום
Passwordהסיסמה לפתיחתו, או מחרוזת ריקה
OutputFileה-PDF המוגבר לכתיבה
FieldNameשדה חתימה לעיבוד, או מחרוזת ריקה כדי לעבד כל חתימה לגרסה אחת.
OptionsA PADES_LTV_* bit mask; 0 selects PADES_LTV_DEFAULT.

אפשרויות

PADES_LTV_WRITE_VRI (1)כתיבת כניסת VRI עבור כל חתימה
PADES_LTV_FETCH_OCSP (2)לשאול את מגיב ה-OCSP של כל קישור
PADES_LTV_FETCH_CRL (4)לחזור ל-CRL כאשר ה-OCSP לא החזיר דבר
PADES_LTV_FOLLOW_AIA (8)לעקוב אחרי כתובות המנפיק כדי להשלים את השרשרת
PADES_LTV_SKIP_EXISTING (16)אל תוסיפו שוב חומר שבייטיו כבר הוצבו.
PADES_LTV_SKIP_ROOT_REVOCATION (32)אל תבקשו את מצבו של שורש שהונפק-עצמאית.
PADES_LTV_DEFAULT (63)כל האמור לעיל; נבחר כאשר Options הוא 0

ערכי החזרה

1הקידום הצליח.
2לא ניתן היה לקרוא את קובץ הקלט
3לא ניתן היה לנתח את ה-PDF הנכנס
10לא ניתן היה לכתוב את הפלט
11לא ניתן היה להוסיף את חנות האבטחה של המסמך (DSS)
20אין שדה חתימה כזה.
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.

חומר זהה למה שכבר הועמד נכתב פעם אחת ומופנה על ידי כל חתימה שזקוקה לו, כך שרשות אישורים המשותפת לנתיב או לחתימות אינה מופיעה פעמיים; רשומת VRI נכתבת רק כאשר יש לה תעודה להצביע עליה, ולכן רשומה ריקה לעולם אינה נוצרת

מגיב שאינו נגיש לא מכשיל את הקריאה: הקידום ממשיך עם מה שנאסף, ו-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