THotPDF.SaveIncrementalUpdateAuthenticated Method

Аутентифицирует политики подписанных ревизий, отклоняет запрещённые изменения и атомарно публикует инкрементальное обновление

Объявления

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

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

Порядок работы

  1. Записывает ожидающую инкрементальную ревизию в уникального кандидата в целевом каталоге
  2. Загружает каждую политику из той самой ревизии, которую защищает её подписанный byte range
  3. Аутентифицирует каждую несущую политику CMS-подпись и при необходимости проверяет её certificate path
  4. Классифицирует каждую последующую ревизию и применяет решения DocMDP, FieldMDP, UR или UR3, Identity, а также для неизвестных transform
  5. Публикует принятого кандидата путём атомарной замены со сквозной записью

При отказе кандидат удаляется, а существующий целевой файл остаётся побайтово неизменным

Опции

ЧленНазначение
AuthenticationipaCryptographic требует действительную CMS-подпись byte range, а ipaTrustedCertificate дополнительно требует cvsTrusted по результатам проверки certificate path и revocation
RequireSignaturePolicyОтклоняет документы без аутентифицированной политики преобразования, если равно True (значение по умолчанию)
CertificateValidationTrust anchors, промежуточные сертификаты, offline-свидетельства revocation, время проверки, назначение и политика алгоритмов, используемые режимом trusted certificate

Детали результата

THPDFAuthenticatedIncrementalUpdateInfo сообщает итоговый статус, индекс проблемной подписи, статусы подписи и сертификата, общее число подписей, число аутентифицированных политик и диагностическую проблему

Среди важных статусов 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