دالة HPDFEvaluateCMSSignerQCStatements
يقرأ بيانات الشهادة المؤهَّلة وفق eIDAS وبيان PSD2 لشهادة الموقِّع في بيانات توقيع CMS
التصريح
function HPDFEvaluateCMSSignerQCStatements(const CMSDER: TBytes;
out Info: THPDFQCStatementDescriptor; out CertCount: Integer): boolean;
الوحدة
HPDFSignVerify
المعاملات
| الاسم | الغرض |
|---|---|
CMSDER | بيانات CMS من نوع SignedData بترميز DER، مثل /Contents لتوقيع PDF |
Info | يتسلّم بيانات ETSI EN 319 412-5 (QcCompliance وQcSSCD وQcType وQcLimitValue وQcPDS) وبيان PSD2 وفق ETSI TS 119 495 الخاصة بشهادة الموقِّع |
CertCount | يتسلّم عدد الشهادات المضمَّنة في بيانات CMS؛ وصفر عندما يتعذَّر تحليل البيانات |
قيمة الإرجاع
false عندما يتعذَّر تحليل بيانات CMS أو لا تحتوي شهادة قابلة للقراءة، ويصبح Info فارغًا عندئذ. الشهادة الخالية من بيانات QC تعيد كذلك true مع بقاء Info.HasQCStatements على false
شهادة الموقِّع
تُقيَّم الشهادة التي يحدِّدها SignerInfo؛ وإذا لم يحدث تطابق، تُستخدم أول شهادة مضمَّنة، وهي الموضع الذي يضع فيه بناة CMS الموقِّع
مثال
var
Info: THPDFQCStatementDescriptor;
CertCount: Integer;
begin
if HPDFEvaluateCMSSignerQCStatements(CMSDER, Info, CertCount) then
begin
if Info.QCCompliant and Info.QCSSCD then
Writeln('Qualified certificate on a qualified device');
if Info.HasPSD2Statement then
Writeln('PSD2 NCA: ', Info.PSD2NCAName, ' / ', Info.PSD2NCAId);
end;
end;
ملاحظات الاستخدام
- تفحص الدالة محتوى الشهادة فقط؛ فهي لا تتحقق من التوقيع ولا من سلسلة الشهادات ولا من حالة المُصدِر في قائمة الثقة
- في توقيع داخل مستند محمَّل، يعيد
THotPDF.GetLoadedSignatureQCStatementsالبيانات نفسها دون الحاجة إلى استخراج بيانات CMS أولًا