function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;
PDFium 서명 팩트를 CMS 알고리즘 및 정책 검사, 인증서 신뢰 및 폐기 상태, RFC 3161 타임스탬프 상태, DSS/VRI 커버리지, 증분 리비전 정책 분석과 결합합니다
이 메서드는 불변의 원본 바이트 캡처 하나를 유지하며 문서를 다시 저장하지 않고 compliance, trust, DSS, 리비전 단계에서 재사용합니다
서명자와 순서화된 인증서 경로 식별 정보는 인증서 본문을 보고서에 복사하는 대신 SHA-256 값으로 출력됩니다
TrustOptions는 오프라인 또는 온라인 신뢰 평가, 폐기 검사, 타임스탬프 검사, 진행, 타임아웃, 취소를 제어합니다MaxSourceBytes는 증거 분석이 시작되기 전에 지나치게 큰 보존 소스를 거부합니다MaxSignatures는 수집되는 서명별 증거를 제한합니다MaxRevisionChangesPerSignature는 서명별로 보존되는 객체 수준 리비전 변경을 제한합니다MaxValidationMaterials와 MaxStoredValidationBytes는 압축 스트림을 디코딩하지 않고 인증서, OCSP, CRL 증거에 한도를 적용합니다MaxVriEntries는 서명별 VRI 딕셔너리를 제한합니다TPadesEvidenceReport는 검증 및 리비전 요약, 해시된 DSS 자료 레코드, VRI 참조 그래프, PDFium 서명 수, 잘림 상태, 보존된 서명마다 하나의 TPadesSignatureEvidence를 포함합니다
ToJson은 중첩된 증거 문서를 출력하고 ToCsv는 보존된 리비전 변경마다 하나의 행을, 보존된 변경이 없는 서명은 요약 행 하나를 출력합니다
TPadesSignatureEvidence.Validation은 서명의 RevocationReason과 NativeRevocationError를 timestamp의 TimeStampRevocationReason 및 NativeTimeStampRevocationError와 독립적으로 보존합니다
signatures의 각 JSON 항목에는 revocationReason, nativeRevocationError, timeStampSignatureStatus, timeStampTrustStatus, timeStampRevocationStatus, timeStampRevocationReason, nativeTimeStampRevocationError가 들어갑니다. 기존 멤버와 의미는 그대로이고, JSON 형식에는 schema-version 멤버가 없으므로 소비 쪽은 필드를 이름으로 읽고 추가 멤버를 허용해야 합니다
CSV는 기존 40개 컬럼을 원래 순서대로 유지하고 위에 나열한 일곱 필드를 같은 순서로 덧붙여 총 47개 컬럼이 됩니다. 요약 행과 리비전 변경 행 모두 진단을 담으며 기존 컬럼 위치는 바뀌지 않습니다. 읽는 쪽은 헤더 이름을 쓰거나 뒤에 붙는 추가 컬럼을 허용하는 것이 좋고, 정확히 40개 컬럼을 요구해서는 안 됩니다
reason 문자열은 none, certificateRevoked, crlExpired, crlNotYetValid, crlUnavailable, crlSignatureInvalid, crlInvalid, chainUntrusted, unknown 중 하나입니다. 네이티브 오류는 백엔드별 숫자 코드로, OpenSSL X509 검증 오류나 raw Windows 공급자·GetLastError DWORD 값이 그 예이며 0은 네이티브 진단이 없다는 뜻입니다. Windows 값은 변경 없이 내보내지므로 집합 체인 신뢰 마스크나 공용 HRESULT 공간으로 해석해서는 안 됩니다
판정은 revocationStatus와 timeStampRevocationStatus로 하세요. 검사가 꺼져 있거나 도달하지 못했거나 백엔드 상세 진단이 없을 때도 reason이 none이고 오류가 0일 수 있습니다. evidence를 내보내는 것은 추가 검증 패스를 수행하지 않습니다
Active가 True여야 합니다IsTruncated가 설정됩니다pvssIncomplete와 함께 사용 불가 보고서를 반환합니다
var
Options: TPadesEvidenceReportOptions;
Report: TPadesEvidenceReport;
begin
Options := TPadesEvidenceReportOptions.Default;
Report := Pdf1.BuildPadesEvidenceReport(Options);
TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;