THPDFCertificateValidationOptions レコード
証明書パス検証のために、トラストアンカー、オフライン失効エビデンス、ポリシー制約、アルゴリズム制限を設定します
宣言
THPDFCertificateValidationOptions= record
TrustAnchors: THPDFDERArray;
IntermediateCertificates: THPDFDERArray;
OCSPResponses: THPDFDERArray;
CRLs: THPDFDERArray;
DeltaCRLs: THPDFDERArray;
CRLIssuerCertificates: THPDFDERArray;
OCSPResponseSources: THPDFValidationEvidenceSourceArray;
CRLSources: THPDFValidationEvidenceSourceArray;
DeltaCRLSources: THPDFValidationEvidenceSourceArray;
RevocationMode: THPDFRevocationMode;
ValidationTime: TDateTime;
MaxPathLength: Integer;
OCSPNoncePolicy: THPDFOCSPNoncePolicy;
ExpectedOCSPNonce: TBytes;
OCSPMaxAgeDays: Double;
OCSPAllowedClockSkewMinutes: Integer;
RequireOCSPNextUpdate: boolean;
AllowDelegatedOCSPResponders: boolean;
RequireOCSPNoCheckForDelegated: boolean;
CRLMaxAgeDays: Double;
CRLAllowedClockSkewMinutes: Integer;
RequireCRLNextUpdate: boolean;
AllowIndirectCRLs: boolean;
RequireDeltaCRLWhenAdvertised: boolean;
TrustPurpose: THPDFCertificateTrustPurpose;
CustomTrustPurposeOID: AnsiString;
InitialPolicySet: THPDFOIDArray;
RequireExplicitCertificatePolicy: boolean;
InhibitCertificatePolicyMapping: boolean;
InhibitAnyCertificatePolicy: boolean;
AlgorithmPolicy: THPDFCertificateAlgorithmPolicy;
// v2.738.0 online chain building: when the path cannot close with
// the supplied pool, fetch the missing intermediates through the
// AIA caIssuers URLs of the leaf-most unmatched certificate before
// failing with cvsPathBuildingFailed (transport stays caller-side)
FetchMissingIntermediates: boolean;
MaxFetchedIntermediates: Integer;
class function Default: THPDFCertificateValidationOptions; static;
end;
ユニット
HPDFSignVerify
フィールド
| フィールド | 目的 |
|---|---|
TrustAnchors | パスを閉じることを許可する、DER エンコード済みトラストアンカー証明書 |
IntermediateCertificates | CMS プールが不完全なときに構築処理が使える、信頼されない追加証明書 |
OCSPResponses / CRLs / DeltaCRLs | OCSP 応答、ベース CRL、デルタ CRL のオフラインプール |
CRLIssuerCertificates | CRL 署名者の署名を検証するために使う証明書 |
OCSPResponseSources / CRLSources / DeltaCRLSources | プールの各項目に記録されるエビデンスソースタグ。検証情報に現れます |
RevocationMode | rvmNone、rvmBestEffort、rvmRequire のいずれかの失効動作を選択します |
ValidationTime | 有効性と鮮度のチェックを評価する時刻 |
MaxPathLength | リーフとトラストアンカーの間にある証明書数の上限。Default は 12 を設定します |
OCSPNoncePolicy | OCSP ナンスを必須にするか、存在すれば照合するか、無視するか。Default は存在すれば照合します |
ExpectedOCSPNonce | ポリシーがナンスを要求するときに求めるナンスバイトそのもの |
OCSPMaxAgeDays / CRLMaxAgeDays | OCSP 応答と CRL の許容される最大経過日数。Default は 7 日と 30 日を設定します |
OCSPAllowedClockSkewMinutes / CRLAllowedClockSkewMinutes | エビデンスのタイムスタンプに適用する時計の許容差。Default はそれぞれ 5 分を設定します |
RequireOCSPNextUpdate / RequireCRLNextUpdate | next-update フィールドを持たないエビデンスを拒否します |
AllowDelegatedOCSPResponders | 委譲レスポンダが署名した応答を受け入れます。Default は許可します |
RequireOCSPNoCheckForDelegated | 委譲レスポンダの証明書に OCSPNoCheck 拡張を要求します |
AllowIndirectCRLs | 間接 CRL 署名者が発行した CRL を受け入れます。Default は許可します |
RequireDeltaCRLWhenAdvertised | デルタ CRL ポインタが告知されているのにデルタ CRL が提供されていない場合は失敗します |
TrustPurpose / CustomTrustPurposeOID | トラストアンカーに要求する証明書用途。Default は任意の用途を受け入れます |
InitialPolicySet | 検証済みパスが満たすべき証明書ポリシー OID |
RequireExplicitCertificatePolicy | パス内に明示的な証明書ポリシーを少なくとも 1 つ要求します |
InhibitCertificatePolicyMapping | 証明書ポリシーマッピング処理を無効にします |
InhibitAnyCertificatePolicy | ポリシー処理から anyPolicy 修飾子を除外します |
AlgorithmPolicy | パス内のすべての証明書と署名に適用するキーサイズとアルゴリズムの制限 |
FetchMissingIntermediates | cvsPathBuildingFailed で失敗する前に、AIA caIssuers URL 経由で不足している中間証明書を取得します。トランスポートは呼び出し側に留まります |
MaxFetchedIntermediates | 1 回の検証が AIA 経由で取得できる中間証明書の数の上限 |
Default | 上記で概説した組み込み構成を返すクラス関数 |
使用上の注意
THPDFCertificateValidationOptions.Defaultを起点に、ポリシー上必要な項目だけを上書きしてください。鮮度の窓とトラスト目的がライブラリ既定と一致し続けます- ライブラリがソケットを開くことはありません。エビデンスはプール経由で供給するか、
FetchMissingIntermediatesの取得が必要なときは呼び出し側トランスポート付きのオンライン検証版を使います - ソース配列はエビデンスプールと 1 対 1 で対応するため、レポートは各失効判定をその由来に紐付けられます