HPDFEvaluateCMSSignerQCStatements Function
读取 CMS 签名数据中签名者证书的 eIDAS 合格证书声明和 PSD2 声明
声明
function HPDFEvaluateCMSSignerQCStatements(const CMSDER: TBytes;
out Info: THPDFQCStatementDescriptor; out CertCount: Integer): boolean;
单元
HPDFSignVerify
参数
| 参数 | 用途 |
|---|---|
CMSDER | DER 编码的 CMS SignedData,例如 PDF 签名的 /Contents |
Info | 接收签名者证书的 ETSI EN 319 412-5 声明(QcCompliance、QcSSCD、QcType、QcLimitValue、QcPDS)和 ETSI TS 119 495 PSD2 声明 |
CertCount | 接收 CMS 数据中嵌入的证书数量;数据无法解析时为 0 |
返回值
CMS 数据无法解析或不含可读证书时返回 false,此时 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 数据即可返回相同声明