HPDFParsePSD2QcStatement Function
Parser DER af én PSD2QcType fra ETSI TS 119 495 til en THPDFPSD2QcStatement og afviser ethvert forkert formet input som helhed
Deklaration
function HPDFParsePSD2QcStatement(const StatementInfoDER: TBytes;
out Statement: THPDFPSD2QcStatement): boolean;
Enhed
HPDFSignVerify
Parametre
| Navn | Formål |
|---|---|
StatementInfoDER | statementInfo fra QCStatement 0.4.0.19495.2: præcis én SEQUENCE { rolesOfPSP, nCAName, nCAId } kodet i DER |
Statement | Modtager rollerne samt NCA-navnet og -id'et; tomt, hver gang funktionen returnerer false |
Returværdi
true, når bufferen indeholder en velformet PSD2QcType; false ved en tom buffer og ved enhver af afvigelserne nedenfor
Afvist input
- Længder, der overskrider deres overordnede element, ikke-minimale længdekodninger og ubestemte længder
- Bytes efter den ydre
SEQUENCE - Manglende eller ekstra komponenter og komponenter med det forkerte tag:
rolesOfPSPskal være enSEQUENCE OF SEQUENCE { OBJECT IDENTIFIER, UTF8String },nCANameognCAIdskal væreUTF8String - Rollenavne, NCA-navne og NCA-id'er, der ikke er 1 til 256 tegn af gyldig UTF-8
Eksempel
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;
Brugsnoter
- De definerede rolle-OID'er er
0.4.0.19495.1.1(PSP_AS, kontoservice),0.4.0.19495.1.2(PSP_PI, betalingsinitiering),0.4.0.19495.1.3(PSP_AI, kontoinformation) og0.4.0.19495.1.4(PSP_IC, udstedelse af kortbaserede betalingsinstrumenter) - Funktionen læser DER, du allerede har; for at læse erklæringen fra en signatur skal du bruge
HPDFEvaluateCMSSignerQCStatementspå CMS-dataene ellerTHotPDF.GetLoadedSignatureQCStatementspå et indlæst dokument