THPDFCertificateValidationOptions Record

Configures trust anchors, offline revocation evidence, policy constraints, and algorithm limits for certificate path validation

Declaration

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;

Unit

HPDFSignVerify

Fields

FieldPurpose
TrustAnchorsDER-encoded trust anchor certificates allowed to close the path
IntermediateCertificatesExtra untrusted certificates the builder may use when the CMS pool is incomplete
OCSPResponses / CRLs / DeltaCRLsOffline pools of OCSP responses, base CRLs, and delta CRLs
CRLIssuerCertificatesCertificates used to verify CRL signer signatures
OCSPResponseSources / CRLSources / DeltaCRLSourcesEvidence source tag recorded for each pooled item, surfaced on the validation info
RevocationModeSelects rvmNone, rvmBestEffort, or rvmRequire revocation behavior
ValidationTimeTime the validity and freshness checks are evaluated at
MaxPathLengthMaximum number of certificates between leaf and trust anchor; Default sets 12
OCSPNoncePolicyWhether OCSP nonces are required, matched when present, or ignored; Default matches when present
ExpectedOCSPNonceExact nonce bytes to demand when the policy requires one
OCSPMaxAgeDays / CRLMaxAgeDaysMaximum accepted age of OCSP responses and CRLs; Default sets 7 and 30 days
OCSPAllowedClockSkewMinutes / CRLAllowedClockSkewMinutesClock tolerance applied to evidence timestamps; Default sets 5 minutes each
RequireOCSPNextUpdate / RequireCRLNextUpdateReject evidence that carries no next-update field
AllowDelegatedOCSPRespondersAccept responses signed by delegated responders; Default allows them
RequireOCSPNoCheckForDelegatedDemand the OCSPNoCheck extension on delegated responder certificates
AllowIndirectCRLsAccept CRLs issued by an indirect CRL signer; Default allows them
RequireDeltaCRLWhenAdvertisedFail when a delta CRL pointer is advertised but no delta CRL was supplied
TrustPurpose / CustomTrustPurposeOIDRequired certificate purpose for the trust anchor; Default accepts any purpose
InitialPolicySetCertificate policy OIDs the validated path must satisfy
RequireExplicitCertificatePolicyDemand at least one explicit certificate policy in the path
InhibitCertificatePolicyMappingDisable certificate policy mapping processing
InhibitAnyCertificatePolicyExclude the anyPolicy qualifier from policy processing
AlgorithmPolicyKey size and algorithm limits applied to every certificate and signature in the path
FetchMissingIntermediatesFetch missing intermediates through AIA caIssuers URLs before failing with cvsPathBuildingFailed; the transport stays caller-side
MaxFetchedIntermediatesCap on how many intermediates one validation may fetch through AIA
DefaultClass function returning the built-in configuration summarized above

Usage notes

Related APIs