HPDFEvaluateCMSSignerQCStatements Function

解析 CMS 簽章資料,讀出簽署者憑證上的 eIDAS 合格憑證聲明與 PSD2 陳述式

宣告

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

單元

HPDFSignVerify

參數

參數用途
CMSDERDER 編碼的 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;

使用說明

相關 API