THotPDF.GetLoadedSignatureQCStatements Method
宣告
function GetLoadedSignatureQCStatements(SigIndex: Integer;
out Info: THPDFQCStatementInfo): boolean;
行為
對一個已載入簽章做 eIDAS 合格憑證評估:回報簽署者憑證的 ETSI EN 319 412-5 QCStatements,包括 QcCompliance、QcSSCD、QcType 值、QcLimitValue 與 PDS 位置,以及 TS 119 495 的 PSD2 付款人與收款人角色
PSD2 陳述式
PSD2 QCStatement(0.4.0.19495.2)帶有 PSD2QcType:包含支付服務提供者獲授權的角色、國家主管機關(NCA)名稱,以及 NCA 識別碼。這些資訊透過 THPDFQCStatementInfo 的下列欄位回報:
HasPSD2Statement只有在憑證帶有格式良好的 PSD2 statement 時才為true;長度越界或非最小編碼、缺少或多出元件、tag 錯誤,或名稱不是 1 到 256 個有效 UTF-8 字元的 statement 都會被忽略,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 並未定義 payer 與 payee 角色清單;請改讀PSD2RolesOfPSP
若手上已有 DER 格式的 PSD2QcType,可呼叫 HPDFSignVerify 單元中的 HPDFParsePSD2QcStatement 來解析。它會填入 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 標記的是 eIDAS 910/2014 附錄 IV 中 QcCompliance 加上 QcSSCD 的啟發式判斷;false 並不代表簽章一定不合格,因為是否信任 QTSP 服務仍由呼叫者決定。簽章沒有可用憑證時傳回 false