THotPDF.SaveIncrementalUpdateAuthenticated Method

서명된 revision 정책을 인증하고 금지된 변경을 거부하며, 증분 업데이트를 원자적으로 공개합니다

선언

function SaveIncrementalUpdateAuthenticated(
  const TargetFile: TFileName;
  const Options: THPDFAuthenticatedIncrementalUpdateOptions;
  out Info: THPDFAuthenticatedIncrementalUpdateInfo
): Boolean; overload;

function SaveIncrementalUpdateAuthenticated(
  const TargetFile: TFileName;
  out Info: THPDFAuthenticatedIncrementalUpdateInfo
): Boolean; overload;

워크플로우

  1. 대기 중인 증분 revision을 대상 디렉터리의 고유한 candidate에 기록합니다
  2. signature byte range로 보호되는 정확한 revision에서 모든 정책을 로드합니다
  3. 정책을 담고 있는 각 CMS signature를 인증하고 선택적으로 인증서 경로를 검증합니다
  4. 이후의 모든 revision을 분류하고 DocMDP, FieldMDP, UR 또는 UR3, Identity, 알 수 없는 transform에 대한 판정을 강제합니다
  5. 승인된 candidate를 write-through 원자적 교체로 공개합니다

거부되면 candidate를 삭제하고 기존 대상은 바이트 단위로 그대로 유지합니다

옵션

멤버목적
AuthenticationipaCryptographic은 유효한 CMS byte-range signature를 요구하고, ipaTrustedCertificate는 여기에 인증서 경로와 폐기 검증에서 나온 cvsTrusted를 추가로 요구합니다
RequireSignaturePolicyTrue(기본값)이면 인증된 transform 정책이 없는 문서를 거부합니다
CertificateValidationtrusted-certificate 모드가 사용하는 trust anchor, 중간 인증서, 오프라인 폐기 증거, 검증 시각, 용도, 알고리즘 정책

결과 상세

THPDFAuthenticatedIncrementalUpdateInfo는 최종 상태, 실패한 signature 인덱스, signature와 인증서 상태, 전체 signature 수, 인증된 정책 수, 진단 issue를 보고합니다

주요 상태로는 aiusAccepted, aiusNoSignaturePolicy, aiusSignatureInvalid, aiusCertificateUntrusted, aiusPolicyMalformed, aiusPolicyViolation, aiusCommitFailed가 있습니다

사용 예제

var
  Info: THPDFAuthenticatedIncrementalUpdateInfo;
begin
  PDF.BeginIncrementalUpdate('certified.pdf');
  PDF.SetLoadedFormFieldValueByName('CustomerName', 'Ada');
  if not PDF.SaveIncrementalUpdateAuthenticated('updated.pdf', Info) then
    raise Exception.Create(String(Info.Issue));
end;

보안 경계

관련 API