HPDFEvaluateCMSSignerQCStatements Function

Читает квалификационные инструкции сертификата eIDAS и PSD2-инструкцию сертификата подписанта в данных CMS-подписи

Объявление

function HPDFEvaluateCMSSignerQCStatements(const CMSDER: TBytes;
  out Info: THPDFQCStatementDescriptor; out CertCount: Integer): boolean;

Модуль

HPDFSignVerify

Параметры

ПараметрНазначение
CMSDERCMS SignedData в кодировке DER, например /Contents PDF-подписи
InfoПолучает инструкции ETSI EN 319 412-5 (QcCompliance, QcSSCD, QcType, QcLimitValue, QcPDS) и PSD2-инструкцию ETSI TS 119 495 сертификата подписанта
CertCountПолучает число сертификатов, встроенных в данные CMS; 0, когда данные не удаётся разобрать

Возвращаемое значение

false, когда данные CMS не удаётся разобрать или в них нет читаемого сертификата, и тогда Info пуст. Сертификат без QC-инструкций всё равно даёт true, при этом Info.HasQCStatements остаётся false

Сертификат подписанта

Оценивается сертификат, который указан в SignerInfo; если совпадения нет, берётся первый встроенный сертификат — именно там сборщики CMS размещают подписанта

Пример

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;

Примечания по использованию

Связанные API