HPDFParsePSD2QcStatement Function
ETSI TS 119 495 の PSD2QcType 1 件の DER を THPDFPSD2QcStatement にパースします。整形式でない入力は全体を拒否します
宣言
function HPDFParsePSD2QcStatement(const StatementInfoDER: TBytes;
out Statement: THPDFPSD2QcStatement): boolean;
ユニット
HPDFSignVerify
パラメータ
| パラメータ | 目的 |
|---|---|
StatementInfoDER | QCStatement 0.4.0.19495.2 の statementInfo。DER エンコードされた SEQUENCE { rolesOfPSP, nCAName, nCAId } がちょうど 1 つ |
Statement | ロールと NCA の名前および識別子を受け取ります。関数が false を返すときは常に空 |
戻り値
バッファが整形式の PSD2QcType を持つときは true。空のバッファと、以下の逸脱のいずれかがあるときは false
拒否する入力
- 親をはみ出す長さ、最小長でない長さエンコーディング、不定長
- 外側の
SEQUENCEの後ろにバイトが残っている - コンポーネントの欠落や余分、タグの誤り。
rolesOfPSPはSEQUENCE OF SEQUENCE { OBJECT IDENTIFIER, UTF8String }、nCANameとnCAIdはUTF8Stringでなければなりません - ロール名、NCA 名、NCA 識別子が有効な UTF-8 で 1〜256 文字でない
例
var
Statement: THPDFPSD2QcStatement;
I: Integer;
begin
if HPDFParsePSD2QcStatement(StatementInfoDER, Statement) then
begin
for I:= 0 to High(Statement.RolesOfPSP) do
Writeln(Statement.RolesOfPSP[I].Name, ' (', Statement.RolesOfPSP[I].OID, ')');
Writeln('NCA: ', Statement.NCAName, ' / ', Statement.NCAId);
end;
end;
使用上の注意
- 定義済みのロール OID は
0.4.0.19495.1.1(PSP_AS、口座サービス)、0.4.0.19495.1.2(PSP_PI、支払開始)、0.4.0.19495.1.3(PSP_AI、口座情報)、0.4.0.19495.1.4(PSP_IC、カード型決済手段の発行)です - この関数は手元にある DER を読むためのものです。署名からステートメントを読むには、CMS データに対して
HPDFEvaluateCMSSignerQCStatementsを、ロード済みドキュメントに対してはTHotPDF.GetLoadedSignatureQCStatementsを使用します