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
| NetworkPolicy | ptnpOffline يستخدم بيانات الشهادات المخزنة مؤقتًا فقط، بينما يسمح 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 والأخطاء عند الصفر. وتنطبق الافتراضيات نفسها عندما لا يُصل إلى فحص ما أو حين لا توفر خلفيته سببًا تفصيليًا، فاقرأ الحالة المقابلة دائمًا بدل اعتبار التشخيص الفارغ نجاحًا
Active أن يكون True ولقطة مصدر أصلية كاملةOnProgress على خيط العامل عند استدعائه عبر ValidatePadesTrustAsync ويجب ألا يتعامل مع عناصر واجهة المستخدم مباشرةTPdfFuture
var
Options: TPadesTrustValidationOptions;
Validation: TPadesValidationResult;
begin
Options := TPadesTrustValidationOptions.Default;
Options.NetworkPolicy := ptnpOnline;
Options.CheckRevocation := True;
Validation := Pdf1.ValidatePadesTrust(Options);
end;