ApplyPAdESLongTermValidation
امضاهای دیجیتال
توضیحات
یک PDF امضاشده را با یک فراخوانی به PAdES-B-LT میبرد و نتیجه را در فایلی مینویسد
نحو
Delphi
Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;پارامترها
| InputFile | PDF امضاشده |
|---|---|
| Password | رمزی برای بازکردن آن، یا رشته خالی |
| OutputFile | PDF افزودهشده برای نوشتن |
| 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 | فایل ورودی خوانده نشد |
| 3 | PDF ورودی قابل تجزیه نبود |
| 10 | خروجی نوشته نشد |
| 11 | مخزن امنیتی سند اضافه نشد |
| 20 | No 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