THPDFCertificateValidationOptions Record
인증서 경로 검증의 trust anchor, 오프라인 폐지 증거, 정책 제약, 알고리즘 한도를 설정합니다
선언
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 인코딩 trust anchor 인증서 |
IntermediateCertificates | CMS 풀이 불완전할 때 빌더가 쓸 수 있는 신뢰하지 않는 추가 인증서 |
OCSPResponses / CRLs / DeltaCRLs | OCSP 응답, base CRL, delta CRL의 오프라인 풀 |
CRLIssuerCertificates | CRL 서명자 서명을 검증하는 데 쓰는 인증서 |
OCSPResponseSources / CRLSources / DeltaCRLSources | 풀의 각 항목에 기록되는 증거 소스 태그. 검증 info에 표시됩니다 |
RevocationMode | rvmNone, rvmBestEffort, rvmRequire 중 폐지 동작을 고릅니다 |
ValidationTime | 유효성과 신선도 검사가 평가되는 시각 |
MaxPathLength | leaf와 trust anchor 사이의 최대 인증서 수. Default는 12로 설정합니다 |
OCSPNoncePolicy | OCSP nonce를 필수로 요구할지, 있으면 대조할지, 무시할지. Default는 있으면 대조합니다 |
ExpectedOCSPNonce | 정책이 nonce를 요구할 때 받아야 하는 정확한 nonce 바이트 |
OCSPMaxAgeDays / CRLMaxAgeDays | OCSP 응답과 CRL의 최대 허용 나이. Default는 각각 7일과 30일로 설정합니다 |
OCSPAllowedClockSkewMinutes / CRLAllowedClockSkewMinutes | 증거 타임스탬프에 적용하는 시계 오차 허용. Default는 각각 5분으로 설정합니다 |
RequireOCSPNextUpdate / RequireCRLNextUpdate | next-update 필드가 없는 증거는 거부합니다 |
AllowDelegatedOCSPResponders | 위임된 responder가 서명한 응답을 받아들입니다. Default는 허용합니다 |
RequireOCSPNoCheckForDelegated | 위임 responder 인증서에 OCSPNoCheck 확장을 요구합니다 |
AllowIndirectCRLs | 간접 CRL 서명자가 발행한 CRL을 받아들입니다. Default는 허용합니다 |
RequireDeltaCRLWhenAdvertised | delta CRL 포인터가 광고됐는데 delta CRL이 공급되지 않으면 실패합니다 |
TrustPurpose / CustomTrustPurposeOID | trust anchor에 요구되는 인증서 용도. Default는 어떤 용도든 받아들입니다 |
InitialPolicySet | 검증된 경로가 만족해야 하는 인증서 정책 OID |
RequireExplicitCertificatePolicy | 경로에 명시적 인증서 정책이 적어도 하나 있도록 요구합니다 |
InhibitCertificatePolicyMapping | 인증서 정책 매핑 처리를 끕니다 |
InhibitAnyCertificatePolicy | 정책 처리에서 anyPolicy qualifier를 제외합니다 |
AlgorithmPolicy | 경로의 모든 인증서와 서명에 적용하는 키 크기·알고리즘 한도 |
FetchMissingIntermediates | cvsPathBuildingFailed로 실패하기 전에 AIA caIssuers URL로 빠진 intermediate를 가져옵니다. 전송은 호출자 쪽에 남습니다 |
MaxFetchedIntermediates | 한 번의 검증이 AIA로 가져올 수 있는 intermediate 수 상한 |
Default | 위에 요약한 내장 설정을 돌려주는 클래스 함수 |
사용 참고 사항
THPDFCertificateValidationOptions.Default에서 시작해 정책에 필요한 것만 바꾸면 신선도 창과 trust purpose가 라이브러리 기본값과 일치합니다- 라이브러리는 소켓을 열지 않습니다. 증거는 풀로 공급하거나,
FetchMissingIntermediates가 가져와야 할 때는 호출자 쪽 전송과 함께 온라인 검증 변형을 사용합니다 - 소스 배열은 증거 풀과 일대일로 짝지어져 보고서가 각 폐지 판정의 출처를 밝힐 수 있습니다