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;

Workflow

  1. revision افزایشی در انتظار را در یک کاندیدای یکتا در دایرکتوری هدف می‌نویسد
  2. هر سیاست را از همان revisionی بارگذاری می‌کند که byte range امضایش از آن محافظت می‌کند
  3. هر امضای CMS دارای سیاست را احراز هویت می‌کند و به‌صورت اختیاری مسیر گواهی آن را اعتبارسنجی می‌کند
  4. هر revision بعدی را دسته‌بندی می‌کند و تصمیم‌های DocMDP، FieldMDP، UR یا UR3، Identity و transformهای ناشناخته را اعمال می‌کند
  5. کاندیدای پذیرفته‌شده را با جایگزینی اتمیک write-through منتشر می‌کند

رد شدن، کاندیدا را حذف می‌کند و هدف موجود را بایت‌به‌بایت بدون تغییر باقی می‌گذارد

Options

MemberPurpose
AuthenticationipaCryptographic به یک امضای CMS معتبر روی byte range نیاز دارد، در حالی که ipaTrustedCertificate علاوه بر آن، cvsTrusted را از اعتبارسنجی مسیر گواهی و ابطال می‌خواهد
RequireSignaturePolicyوقتی True باشد (که پیش‌فرض است) اسنادی را که سیاست transform احرازشده ندارند رد می‌کند
CertificateValidationtrust anchorها، گواهی‌های میانی، شواهد ابطال آفلاین، زمان اعتبارسنجی، purpose و سیاست الگوریتم که حالت trusted-certificate استفاده می‌کند

Result details

THPDFAuthenticatedIncrementalUpdateInfo وضعیت نهایی، اندیس امضای ناموفق، وضعیت امضا و گواهی، تعداد کل امضاها، تعداد سیاست‌های احرازشده و یک issue تشخیصی را گزارش می‌دهد

Important statuses include aiusAccepted, aiusNoSignaturePolicy, aiusSignatureInvalid, aiusCertificateUntrusted, aiusPolicyMalformed, aiusPolicyViolation, and aiusCommitFailed

Usage

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;

Security boundary

APIهای مرتبط