HPDFEvaluateCMSSignerQCStatements Function
Читает квалификационные инструкции сертификата eIDAS и PSD2-инструкцию сертификата подписанта в данных CMS-подписи
Объявление
function HPDFEvaluateCMSSignerQCStatements(const CMSDER: TBytes;
out Info: THPDFQCStatementDescriptor; out CertCount: Integer): boolean;
Модуль
HPDFSignVerify
Параметры
| Параметр | Назначение |
|---|---|
CMSDER | CMS 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;
Примечания по использованию
- Функция изучает только содержимое сертификата; она не проверяет подпись, цепочку сертификатов и статус издателя в списках доверия
- Для подписи в загруженном документе
THotPDF.GetLoadedSignatureQCStatementsвозвращает те же инструкции без предварительного извлечения данных CMS