ApplyPAdESLongTermValidation

التواقيع الرقمية

الوصف

يرقي ملف PDF موقعًا سلفًا إلى PAdES-B-LT في استدعاء واحد كاتبًا النتيجة في ملف

الصيغة

Delphi

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

المعاملات

InputFileThe 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 لذلك المقبض المحرر

قيم الإرجاع

1The promotion succeeded.
2تعذّرت قراءة ملف الإدخال
3تعذّر تحليل ملف PDF المدخل
10تعذّرت كتابة الإخراج
11تعذّرت إضافة مخزن أمان المستند
20No 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