PDFium Delphi Component Docs

طرق ValidatePadesTrust

المكوّن: TPdf  ·  الوحدة: PDFium
التحقق من سلامة توقيع PAdES وثقة النظام الحالية وأدلة الإبطال الاختيارية ورموز الطوابع الزمنية RFC 3161

الصياغة

function ValidatePadesTrust(const Options: TPadesTrustValidationOptions): TPadesValidationResult;

function ValidatePadesTrustAsync(const Options: TPadesTrustValidationOptions; const Reply: TPadesTrustValidationReply): Boolean;

الوصف

يلتقط كلا الطريقتين الملف الأصلي بالضبط أو مخزن الذاكرة أو التيار المخصص أو المصدر التقدمي المكتمل الذي يحتفظ به المكوّن النشط، ولا يصادق أبدًا على نسخة أعاد PDFium حفظها

يُفحص كل توقيع عادي مقابل ByteRange الأصلي وسمات CMS الموقَّعة وقيمة التوقيع وربط signing-certificate-v2 وسلسلة الشهادات الحالية للخلفية المعدّة وأدلة الإبطال الاختيارية

تتحقق طوابع التوقيع الزمنية و Document Time-stamp إضافةً من بصمة رسالة SHA-256 وتوقيع CMS المرفق وسلسلة TSA وحالة الإبطال الاختيارية

يجب أن تتضمن شهادة موقع الوقت EKU حرجة تحتوي فقط id-kp-timeStamping وفق RFC 3161 القسم 2.3؛ يجعل الغياب أو عدم الحرج أو المزج أو الدور الآخر TimeStampTrustStatus غير صالح حتى مع CMS وسلسلة أساسية صالحين؛ تبقى نتائج التوقيع الخارجي مستقلة

يلتقط التحميل الزائد غير المتزامن المصدر قبل الإرسال ويُبلِّغ عن الاكتمال عبر TPadesTrustValidationReply

الخيارات

NetworkPolicyptnpOffline يستخدم بيانات الشهادات المخزنة مؤقتًا فقط، بينما يسمح ptnpOnline باسترجاع سلسلة Windows
CheckRevocationيطلب تقييم إبطال السلسلة من الخلفية المعدّة؛ فـ Windows تستثني شهادة الجذر، بينما تفحص OpenSSL قوائم CRL المعدّة مقابل السلسلة
CheckTimeStampsيصادق على رموز طوابع التوقيع الزمنية و Document Time-stamp عند وجودها
UrlRetrievalTimeoutMsيحدّ استرجاع URL الأصلي المستخدم في معالجة السلسلة والإبطال
QualifiedTrustEvaluatorيقيم اختياريًا الموقِّع والسلسلة المجمَّعة مقابل لقطة قائمة ثقة موثَّقة دون اتصال
QualifiedValidationTimeيختار وقت تقييم UTC لسجل الخدمة، والقيمة صفر تعني الوقت الحالي
CancellationTokenيتوقف عند حد مرحلة التحقق التالي
OnProgressيستقبل المرحلة وفهرس التوقيع وعدد التوقيعات والنسبة المئوية الإجمالية

النتيجة

تُبلِّغ TPadesValidationResult.Signatures عن قيم ByteRangeStatus و CmsSignatureStatus و AlgorithmPolicyStatus و SigningCertificateStatus و CertificateTrustStatus و QualifiedTrustStatus و RevocationStatus و TimeStampStatus و TimeStampSignatureStatus و TimeStampTrustStatus و TimeStampRevocationStatus المستقلة، بينما يحدد QualifiedTrust الإقليم والمزوِّد والخدمة والنوع والحالة ووقت البدء المطابقة

يسجّل AlgorithmInfo معرفات OID لملخص وتوقيع CMS إضافةً إلى معرفات المفتاح العام والمنحنى المسمَّى لشهادة التوقيع، ويطبق قواعد ISO/TS 32002 لـ NIST و Brainpool و Ed25519 و Ed448 وتوافق المنحنى مع الملخص قبل قبول السلامة

الخوارزميات غير المدعومة وخدمات ثقة المنصة غير المتاحة وأدلة الإبطال غير المكتملة والتحقق الملغى لا تُرقَّى إلى حالات صالحة

كل مدخل توقيع يتضمن RevocationReason و NativeRevocationError من تحقق CMS الخاص به، بالإضافة إلى TimeStampRevocationReason و NativeTimeStampRevocationError المستقلين من تحقق رمز الطابع الزمني. وتستخدم حقول الأسباب النوع TPdfCmsRevocationReason؛ وحقول الأخطاء الأصلية قيم Cardinal في فضاء أخطاء الخلفية المختارة، مثل أكواد X509_V_ERR_* في OpenSSL أو قيمة DWORD خام من مزود Windows أو GetLastError. وتُحفظ قيم Windows دون تحويلها إلى فضاء HRESULT مشترك

يصف الزوج الخاص بالطابع الزمني طابعَ توقيع مضمّنًا أو Document Time-stamp، دون الكتابة فوق زوج التوقيع العادي. ولا تُملأ تشخيصات الطابع الزمني إلا بعد أن تسمح فحوصات بنية الرمز وبصمة الرسالة بتشغيل تحقق CMS

مع CheckRevocation = False تبقى أسباب التشخيص عند pcrrNone والأخطاء عند الصفر. وتنطبق الافتراضيات نفسها عندما لا يُصل إلى فحص ما أو حين لا توفر خلفيته سببًا تفصيليًا، فاقرأ الحالة المقابلة دائمًا بدل اعتبار التشخيص الفارغ نجاحًا

ملاحظات

مثال

var
  Options: TPadesTrustValidationOptions;
  Validation: TPadesValidationResult;
begin
  Options := TPadesTrustValidationOptions.Default;
  Options.NetworkPolicy := ptnpOnline;
  Options.CheckRevocation := True;
  Validation := Pdf1.ValidatePadesTrust(Options);
end;

انظر أيضًا

ValidatePades FPdfTrustedList AnalyzeSignatureRevisions RenewPadesArchiveTimestamp