HPDFParsePSD2QcStatement Function
Analizza il DER di un PSD2QcType ETSI TS 119 495 in un THPDFPSD2QcStatement e rifiuta qualsiasi input malformato nel suo complesso
Dichiarazione
function HPDFParsePSD2QcStatement(const StatementInfoDER: TBytes;
out Statement: THPDFPSD2QcStatement): boolean;
UnitÃ
HPDFSignVerify
Parametri
| Nome | Scopo |
|---|---|
StatementInfoDER | Il statementInfo del QCStatement 0.4.0.19495.2: esattamente una SEQUENCE { rolesOfPSP, nCAName, nCAId } codificata in DER |
Statement | Riceve i ruoli e il nome e l'identificatore della NCA; vuoto ogni volta che la funzione restituisce false |
Valore restituito
true quando il buffer contiene un PSD2QcType ben formato; false per un buffer vuoto e per ognuna delle deviazioni seguenti
Input rifiutato
- Lunghezze che eccedono il proprio contenitore, codifiche di lunghezza non minimali e lunghezze indefinite
- Byte dopo la
SEQUENCEesterna - Componenti mancanti o in eccesso e componenti con tag errato:
rolesOfPSPdeve essere unaSEQUENCE OF SEQUENCE { OBJECT IDENTIFIER, UTF8String },nCANameenCAIddevono essereUTF8String - Nomi di ruolo, nomi NCA e identificatori NCA che non sono da 1 a 256 caratteri di UTF-8 valido
Esempio
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;
Note d'uso
- Gli OID di ruolo definiti sono
0.4.0.19495.1.1(PSP_AS, gestione del conto),0.4.0.19495.1.2(PSP_PI, avvio del pagamento),0.4.0.19495.1.3(PSP_AI, informazioni sul conto) e0.4.0.19495.1.4(PSP_IC, emissione di strumenti di pagamento basati su carta) - La funzione legge un DER che si possiede già ; per leggere la dichiarazione da una firma, usare
HPDFEvaluateCMSSignerQCStatementssui dati CMS oTHotPDF.GetLoadedSignatureQCStatementssu un documento caricato