HPDFParsePSD2QcStatement Function
Parsea el DER de un PSD2QcType de ETSI TS 119 495 hacia un THPDFPSD2QcStatement y rechaza cualquier entrada mal formada en bloque
Declaración
function HPDFParsePSD2QcStatement(const StatementInfoDER: TBytes;
out Statement: THPDFPSD2QcStatement): boolean;
Unidad
HPDFSignVerify
Parámetros
| Parámetro | 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; queda vacío siempre que la función devuelve false |
Valor de retorno
true cuando el búfer contiene un PSD2QcType bien formado; false para un búfer vacío y para cualquiera de las desviaciones de la lista siguiente
Entradas rechazadas
- Longitudes que desbordan a su contenedor, codificaciones de longitud no minimales y longitudes indefinidas
- Bytes después del
SEQUENCEexterior - Componentes faltantes o extra 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 tengan 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, administración de cuentas),0.4.0.19495.1.2(PSP_PI, inicio 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 tiene en su poder; para leer la declaración desde una firma, use
HPDFEvaluateCMSSignerQCStatementssobre los datos CMS oTHotPDF.GetLoadedSignatureQCStatementssobre un documento cargado