ApplyPAdESLongTermValidation
التواقيع الرقمية
الوصف
يرقي ملف PDF موقعًا سلفًا إلى PAdES-B-LT في استدعاء واحد كاتبًا النتيجة في ملف
الصيغة
Delphi
Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;المعاملات
| InputFile | The signed PDF. |
|---|---|
| Password | كلمة المرور لفتحه، أو سلسلة فارغة |
| OutputFile | ملف PDF المعزز المطلوب كتابته |
| FieldName | تعبير مدى صفحات مثل 1-3,7، أو سلسلة فارغة لكل الصفحات |
| Options | مقبض مهمة يبدأ من 1 للاستخدام مع توابع التحكم في مهمة الرسم |
الخيارات
PADES_LTV_WRITE_VRI (1) | اكتب مدخل VRI عن كل توقيع |
|---|---|
PADES_LTV_FETCH_OCSP (2) | طبّق /E على العنصر الأعم الذي يغلّف الاختصار — عادة عنصر Span. ويشمل التوسيع محتوى ذلك العنصر فقط ولا يورَّث للأبناء |
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) | بعد نجاح هذه الدالة تُرجع SelectImage(ImageID) القيمة 0 لذلك المقبض المحرر |
قيم الإرجاع
| 1 | The promotion succeeded. |
|---|---|
| 2 | تعذّرت قراءة ملف الإدخال |
| 3 | تعذّر تحليل ملف PDF المدخل |
| 10 | تعذّرت كتابة الإخراج |
| 11 | تعذّرت إضافة مخزن أمان المستند |
| 20 | No such signature field. |
| 21 | لا يوجد توقيع مُعالَج يحمل شهادة قابلة للقراءة |
5 = محاذاة رأسية سفلية دون التفاف
ملاحظات
48يُبنى مسار شهادة الموقّع من CMS الخاص بالتوقيع نفسه ويتبع المُصدِرون المتبقون عبر عناوين caIssuers التي تسميها الشهادات عندما يُضبط PADES_LTV_FOLLOW_AIA. ويُجمع الإبطال عن كل وصلة - 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