THPDFCMSVerifyOptions レコード

CMS 署名検証の上限、外部プロバイダー、署名ポリシーのピン留め、タイムスタンプ再検証を設定します

宣言

THPDFCMSVerifyOptions= record
  SignatureProvider: THPDFSignatureProvider;
  AllowMLDSA: boolean;
  OpenSSLLibraryPath: string;
  MaxSignerCount: Integer;
  MaxCounterSignatureDepth: Integer;
  // Policy pinning is applied to primary SignerInfo values. Empty
  // expected fields do not constrain the corresponding policy field
  RequireSignaturePolicy: boolean;
  ExpectedSignaturePolicyOID: AnsiString;
  ExpectedSignaturePolicyHash: TBytes;
  SignaturePolicyDocument: TBytes;
  // Set this flag to hash an intentionally empty policy document
  VerifySignaturePolicyDocumentHash: boolean;
  RejectUnknownSignaturePolicyHash: boolean;
  // Batch validation sets this when a shared timestamp cache already
  // holds the verdict for the embedded signature timestamp token: token
  // re-verification is skipped and the caller restores the cached
  // THPDFTimestampInfo afterwards. Document timestamps (ETSI.RFC3161)
  // never take this path because the token is the primary signature
  SkipSignatureTimestampVerification: boolean;
  class function Default: THPDFCMSVerifyOptions; static;
end;

ユニット

HPDFSignVerify

フィールド

フィールド目的
SignatureProvider署名と検証のプリミティブに使われる省略可能な外部 THPDFSignatureProvider。nil で組み込み実装を選択します
AllowMLDSA検証中の ML-DSA 署名を許可します
OpenSSLLibraryPath検証が OpenSSL バックエンドを通るときの OpenSSL ライブラリのあるディレクトリ
MaxSignerCount処理するプライマリ署名者の上限。Default は 256 を設定します
MaxCounterSignatureDepthカウンター署名のネスト制限。Default は 8 を設定します
RequireSignaturePolicyTrue の場合、署名ポリシーを持たない署名は失敗します
ExpectedSignaturePolicyOIDプライマリ SignerInfo が提示すべきポリシー OID。空なら制約しません
ExpectedSignaturePolicyHashピン留めする期待ポリシーダイジェスト。空なら制約しません
SignaturePolicyDocumentハッシュ比較に使うポリシードキュメントのバイト列
VerifySignaturePolicyDocumentHashTrue の場合、意図的に空のポリシードキュメントをハッシュします
RejectUnknownSignaturePolicyHash埋め込みポリシーハッシュがどの期待値にも一致しない場合に検証を失敗させます
SkipSignatureTimestampVerification一括検証の際、埋め込み署名タイムスタンプトークンの判定をキャッシュ済みとして信頼します
Defaultゼロ初期化レコードに MaxSignerCount 256 と MaxCounterSignatureDepth 8 を設定して返すクラス関数

使用上の注意

関連 API