HPDFEvaluateCMSSignerQCStatements Function
CMS 署名データ内の署名者証明書が持つ eIDAS qualified-certificate ステートメントと 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;
使用上の注意
- この関数が調べるのは証明書の内容だけです。署名、証明書チェーン、発行者のトラストリスト掲載状況は検証しません
- ロード済みドキュメント内の署名については、CMS データを先に取り出さなくても
THotPDF.GetLoadedSignatureQCStatementsが同じステートメントを返します