PDFium Delphi Component Docs

BuildPadesEvidenceReport 메서드

컴포넌트: TPdf  ·  유닛: PDFium
보존된 원본 PDF의 모든 PAdES 서명과 문서 타임스탬프에 대해 하나의 한도 있는 증거 보고서를 만듭니다

Syntax

function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;

Description

PDFium 서명 팩트를 CMS 알고리즘 및 정책 검사, 인증서 신뢰 및 폐기 상태, RFC 3161 타임스탬프 상태, DSS/VRI 커버리지, 증분 리비전 정책 분석과 결합합니다

이 메서드는 불변의 원본 바이트 캡처 하나를 유지하며 문서를 다시 저장하지 않고 compliance, trust, DSS, 리비전 단계에서 재사용합니다

서명자와 순서화된 인증서 경로 식별 정보는 인증서 본문을 보고서에 복사하는 대신 SHA-256 값으로 출력됩니다

Options

Result

TPadesEvidenceReport는 검증 및 리비전 요약, 해시된 DSS 자료 레코드, VRI 참조 그래프, PDFium 서명 수, 잘림 상태, 보존된 서명마다 하나의 TPadesSignatureEvidence를 포함합니다

ToJson은 중첩된 증거 문서를 출력하고 ToCsv는 보존된 리비전 변경마다 하나의 행을, 보존된 변경이 없는 서명은 요약 행 하나를 출력합니다

TPadesSignatureEvidence.Validation은 서명의 RevocationReason과 NativeRevocationError를 timestamp의 TimeStampRevocationReason 및 NativeTimeStampRevocationError와 독립적으로 보존합니다

Revocation export fields

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를 내보내는 것은 추가 검증 패스를 수행하지 않습니다

Remarks

Example

var
  Options: TPadesEvidenceReportOptions;
  Report: TPadesEvidenceReport;
begin
  Options := TPadesEvidenceReportOptions.Default;
  Report := Pdf1.BuildPadesEvidenceReport(Options);
  TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;

See Also

ValidatePadesTrust AnalyzeSignatureRevisions