HPDFEvaluateCMSSignerQCStatements Function
Lê as declarações de certificado qualificado eIDAS e a declaração PSD2 do certificado do signatário nos dados de assinatura CMS
Declaração
function HPDFEvaluateCMSSignerQCStatements(const CMSDER: TBytes;
out Info: THPDFQCStatementDescriptor; out CertCount: Integer): boolean;
Unidade
HPDFSignVerify
Parâmetros
| Nome | Finalidade |
|---|---|
CMSDER | CMS SignedData codificado em DER, como o /Contents de uma assinatura PDF |
Info | Recebe as declarações da ETSI EN 319 412-5 (QcCompliance, QcSSCD, QcType, QcLimitValue, QcPDS) e a declaração PSD2 da ETSI TS 119 495 do certificado do signatário |
CertCount | Recebe o número de certificados incorporados nos dados CMS; 0 quando os dados não podem ser analisados |
Valor de retorno
false quando os dados CMS não podem ser analisados ou não contêm um certificado legível, e Info fica vazio nesse caso. Um certificado sem declarações QC ainda retorna true, com Info.HasQCStatements permanecendo false
Certificado do signatário
O certificado que o SignerInfo identifica é avaliado; quando nenhum corresponde, o primeiro certificado incorporado é usado, que é onde os geradores de CMS colocam o signatário
Exemplo
var
Info: THPDFQCStatementDescriptor;
CertCount: Integer;
begin
if HPDFEvaluateCMSSignerQCStatements(CMSDER, Info, CertCount) then
begin
if Info.QCCompliant and Info.QCSSCD then
Writeln('Qualified certificate on a qualified device');
if Info.HasPSD2Statement then
Writeln('PSD2 NCA: ', Info.PSD2NCAName, ' / ', Info.PSD2NCAId);
end;
end;
Notas de uso
- A função inspeciona apenas o conteúdo do certificado; ela não verifica a assinatura, a cadeia de certificados nem o status do emissor nas listas de confiança
- Para uma assinatura em um documento carregado,
THotPDF.GetLoadedSignatureQCStatementsretorna as mesmas declarações sem extrair antes os dados CMS