HPDFParsePSD2QcStatement Function
Analiza el DER de un PSD2QcType de ETSI TS 119 495 en un THPDFPSD2QcStatement y rechaza cualquier entrada malformada como un todo
Declaración
function HPDFParsePSD2QcStatement(const StatementInfoDER: TBytes;
out Statement: THPDFPSD2QcStatement): boolean;
Unidad
HPDFSignVerify
Parámetros
| Nombre | Propósito |
|---|---|
StatementInfoDER | El statementInfo del QCStatement 0.4.0.19495.2: exactamente un SEQUENCE { rolesOfPSP, nCAName, nCAId } codificado en DER |
Statement | Recibe los roles y el nombre y el identificador de la NCA; vacío siempre que la función devuelva false |
Valor devuelto
true cuando el búfer contiene un PSD2QcType bien formado; false para un búfer vacío y para cualquiera de las desviaciones siguientes
Entradas rechazadas
- Longitudes que desbordan a su contenedor, codificaciones de longitud no mínima y longitudes indefinidas
- Bytes tras el
SEQUENCEexterno - Componentes ausentes o sobrantes y componentes con el tag equivocado:
rolesOfPSPdebe ser unSEQUENCE OF SEQUENCE { OBJECT IDENTIFIER, UTF8String }, ynCANameynCAIddeben serUTF8String - Nombres de rol, nombres de NCA e identificadores de NCA que no sean de 1 a 256 caracteres de UTF-8 válido
Ejemplo
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;
Notas de uso
- Los OID de rol definidos son
0.4.0.19495.1.1(PSP_AS, servicio de cuentas),0.4.0.19495.1.2(PSP_PI, iniciación de pagos),0.4.0.19495.1.3(PSP_AI, información de cuentas) y0.4.0.19495.1.4(PSP_IC, emisión de instrumentos de pago basados en tarjeta) - La función lee un DER que ya posee; para leer la declaración desde una firma, use
HPDFEvaluateCMSSignerQCStatementssobre los datos CMS oTHotPDF.GetLoadedSignatureQCStatementssobre un documento cargado