THotPDF.GetLoadedSignatureQCStatements Method
Объявление
function GetLoadedSignatureQCStatements(SigIndex: Integer;
out Info: THPDFQCStatementInfo): boolean;
Поведение
Оценка квалифицированного сертификата eIDAS для одной загруженной подписи: сообщает QCStatements сертификата подписанта по ETSI EN 319 412-5, включая QcCompliance, QcSSCD, значения QcType, QcLimitValue и расположения PDS, а также роли плательщика и получателя PSD2 из TS 119 495
PSD2 statement
PSD2 QCStatement (0.4.0.19495.2) несёт PSD2QcType: роли, на которые уполномочен провайдер платёжных услуг, имя национального надзорного органа (NCA) и идентификатор NCA. Он сообщается через эти поля THPDFQCStatementInfo:
HasPSD2Statement—trueтолько когда сертификат несёт корректно оформленный PSD2 statement; statement с выходящими за границы или неминимальными длинами, отсутствующими или лишними компонентами, неверными тегами или именами, которые не являются 1-256 символами валидного UTF-8, игнорируется и оставляет поля PSD2 пустымиPSD2RolesOfPSPперечисляет каждую роль в порядке сертификата какTHPDFPSD2RoleсOID(0.4.0.19495.1.1PSP_AS,0.4.0.19495.1.2PSP_PI,0.4.0.19495.1.3PSP_AI,0.4.0.19495.1.4PSP_IC) иName, имя роли, хранимое в сертификате, напримерPSP_ASPSD2NCANameиPSD2NCAIdхранят имя и идентификатор NCA, напримерCZ-CNBPSD2RolesPayerиPSD2RolesPayeeустарели и всегда пусты, поскольку ETSI TS 119 495 не определяет списки ролей плательщика и получателя; читайтеPSD2RolesOfPSPвместо него
Чтобы разобрать PSD2QcType, который у вас уже есть в виде DER, вызовите HPDFParsePSD2QcStatement из модуля HPDFSignVerify. Она заполняет THPDFPSD2QcStatement и возвращает false при любых некорректных входных данных
var
Info: THPDFQCStatementInfo;
I: Integer;
begin
if HotPDF1.GetLoadedSignatureQCStatements(0, Info) and Info.HasPSD2Statement then
begin
for I:= 0 to High(Info.PSD2RolesOfPSP) do
Writeln(Info.PSD2RolesOfPSP[I].Name, ' (', Info.PSD2RolesOfPSP[I].OID, ')');
Writeln('NCA: ', Info.PSD2NCAName, ' / ', Info.PSD2NCAId);
end;
end;
Эвристика квалифицированной подписи
QualifiedSignatureLikely отражает эвристику из приложения IV eIDAS 910/2014 — QcCompliance плюс QcSSCD; значение false не доказывает, что подпись неквалифицированная, потому что решение о доверии сервису QTSP остаётся за вызывающим. Возвращает false, если у подписи нет пригодного сертификата
См. также GetLoadedSignatureInfo, Пакетная валидация подписей