HPDFParsePSD2QcStatement Fonksiyonu
Tek bir ETSI TS 119 495 PSD2QcType DER'ini bir THPDFPSD2QcStatement olarak ayrıştırır ve bozuk girdiyi bütün halinde reddeder
Bildirim
function HPDFParsePSD2QcStatement(const StatementInfoDER: TBytes;
out Statement: THPDFPSD2QcStatement): boolean;
Birim
HPDFSignVerify
Parametreler
| Parametre | Amaç |
|---|---|
StatementInfoDER | 0.4.0.19495.2 QCStatement'ının statementInfo alanı: tam olarak bir DER kodlamalı SEQUENCE { rolesOfPSP, nCAName, nCAId } |
Statement | Rolleri ile NCA adını ve tanımlayıcısını alır; işlev false döndürdüğünde boş kalır |
Dönüş değeri
Arabellek iyi biçimli bir PSD2QcType içerdiğinde true; boş arabellek için ve aşağıdaki sapmaların herhangi biri için false
Reddedilen girdi
- Üst öğesini aşan uzunluklar, minimal olmayan uzunluk kodlamaları ve belirsiz uzunluklar
- Dış
SEQUENCE'den sonra gelen baytlar - Eksik ya da fazla bileşenler ve yanlış etiketli bileşenler:
rolesOfPSPbirSEQUENCE OF SEQUENCE { OBJECT IDENTIFIER, UTF8String },nCANamevenCAIdiseUTF8Stringolmalıdır - Geçerli UTF-8 olan 1 ile 256 karakter aralığında olmayan rol adları, NCA adları ve NCA tanımlayıcıları
Örnek
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;
Kullanım notları
- Tanımlı rol OID'leri şunlardır:
0.4.0.19495.1.1(PSP_AS, hesap servisi),0.4.0.19495.1.2(PSP_PI, ödeme başlatma),0.4.0.19495.1.3(PSP_AI, hesap bilgisi) ve0.4.0.19495.1.4(PSP_IC, kart tabanlı ödeme araçlarının ihdası) - İşlev elinizde hazır olan DER'i okur; statement'ı bir imzadan okumak için CMS verisi üzerinde
HPDFEvaluateCMSSignerQCStatements'i, yüklenmiş bir belge üzerinde iseTHotPDF.GetLoadedSignatureQCStatements'i kullanın