دالة HPDFParsePSD2QcStatement
يحلِّل DER الخاص بـ PSD2QcType واحد وفق ETSI TS 119 495 إلى THPDFPSD2QcStatement ويرفض أي إدخال مشوَّه ككل
التصريح
function HPDFParsePSD2QcStatement(const StatementInfoDER: TBytes;
out Statement: THPDFPSD2QcStatement): boolean;
الوحدة
HPDFSignVerify
المعاملات
| الاسم | الغرض |
|---|---|
StatementInfoDER | statementInfo الخاص بـ QCStatement 0.4.0.19495.2: SEQUENCE { rolesOfPSP, nCAName, nCAId } واحد بالضبط بترميز DER |
Statement | يتسلّم الأدوار واسم NCA ومعرِّفه؛ ويكون فارغًا كلما أعادت الدالة false |
قيمة الإرجاع
true عندما يحتوي المخزن المؤقت على PSD2QcType حسن البناء؛ وfalse للمخزن الفارغ ولأي انحراف مما يلي
الإدخال المرفوض
- الأطوال التي تتجاوز أباءها، والترميزات بطول غير أدنى، والأطوال غير المحدَّدة
- البايتات الواقعة بعد
SEQUENCEالخارجية - المكوّنات المفقودة أو الزائدة والمكوّنات ذات الوسم الخاطئ: يجب أن يكون
rolesOfPSPبالبنيةSEQUENCE OF SEQUENCE { OBJECT IDENTIFIER, UTF8String }، وأن يكونnCANameوnCAIdمن نوعUTF8String - أسماء الأدوار وأسماء NCA ومعرّفات NCA التي ليست من 1 إلى 256 محرفًا من UTF-8 صالح
مثال
var
Statement: THPDFPSD2QcStatement;
I: Integer;
begin
if HPDFParsePSD2QcStatement(StatementInfoDER, Statement) then
begin
for I:= 0 to High(Statement.RolesOfPSP) do
Writeln(Statement.RolesOfPSP[I].Name, ' (', Statement.RolesOfPSP[I].OID, ')');
Writeln('NCA: ', Statement.NCAName, ' / ', Statement.NCAId);
end;
end;
ملاحظات الاستخدام
- معرّفات OID للأدوار المعرَّفة هي
0.4.0.19495.1.1(PSP_AS، خدمة حسابات)، و0.4.0.19495.1.2(PSP_PI، بدء الدفع)، و0.4.0.19495.1.3(PSP_AI، معلومات الحساب)، و0.4.0.19495.1.4(PSP_IC، إصدار أدوات الدفع البطاقية) - تقرأ الدالة DER الذي تملكه أصلًا؛ ولقراءة البيان من توقيع، استخدم
HPDFEvaluateCMSSignerQCStatementsعلى بيانات CMS أوTHotPDF.GetLoadedSignatureQCStatementsعلى مستند محمَّل