ApplyPAdESLongTermValidation

امضاهای دیجیتال

توضیحات

یک PDF امضاشده را با یک فراخوانی به PAdES-B-LT می‌برد و نتیجه را در فایلی می‌نویسد

نحو

Delphi

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

پارامترها

InputFilePDF امضاشده
Passwordرمزی برای بازکردن آن، یا رشته خالی
OutputFilePDF افزوده‌شده برای نوشتن
FieldNameفیلد امضا برای پردازش، یا رشتهٔ خالی برای پردازش همهٔ امضاها در یک بازنگری
Optionsبیت‌ماسک PADES_LTV_*؛ 0 یعنی PADES_LTV_DEFAULT

گزینه‌ها

PADES_LTV_WRITE_VRI (1)برای هر امضا یک ورودی VRI می‌نویسد
PADES_LTV_FETCH_OCSP (2)از responder OCSP هر link پرس‌وجو می‌کند
PADES_LTV_FETCH_CRL (4)وقتی OCSP پاسخی برنگرداند، از CRL استفاده می‌شود
PADES_LTV_FOLLOW_AIA (8)برای کامل‌کردن مسیر، نشانی‌های صادرکننده دنبال می‌شوند
PADES_LTV_SKIP_EXISTING (16)محتوایی را که بایت‌هایش از قبل روی صحنه است دوباره اضافه نکنید
PADES_LTV_SKIP_ROOT_REVOCATION (32)وضعیت root صادرشده توسط خودتان را نپرسید
PADES_LTV_DEFAULT (63)همهٔ موارد بالا؛ وقتی Options صفر باشد انتخاب می‌شود

مقادیر بازگشتی

1ارتقا موفق بود
2فایل ورودی خوانده نشد
3PDF ورودی قابل تجزیه نبود
10خروجی نوشته نشد
11مخزن امنیتی سند اضافه نشد
20No such signature field.
21هیچ امضای پردازش‌شده‌ای گواهی خوانا نداشت

GetPAdESLTVError دلیل هر مقداری غیر از 1 را حمل می‌کند

ملاحظات

مسیر گواهی امضاکننده از CMS خود امضا ساخته می‌شود و صادرکننده‌های باقی‌مانده وقتی PADES_LTV_FOLLOW_AIA تنظیم شده باشد از طریق نشانی‌های caIssuers که گواهی‌ها نام می‌برند دنبال می‌شوند. ابطال برای هر پیوند جمع می‌شود — اول OCSP سپس CRL — و همراه با گواهی‌ها با یک به‌روزرسانی افزایشی واحد در مخزن امنیتی سند نوشته می‌شود

مواد یکسان با چیزی که از قبل آماده شده فقط یک بار نوشته و توسط هر امضایی که به آن نیاز دارد ارجاع می‌شود، پس یک مرجع گواهی مشترک در مسیر یا میان امضاها دوبار ظاهر نمی‌شود. مدخل 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