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
- revision افزایشی در انتظار را در یک کاندیدای یکتا در دایرکتوری هدف مینویسد
- هر سیاست را از همان revisionی بارگذاری میکند که byte range امضایش از آن محافظت میکند
- هر امضای CMS دارای سیاست را احراز هویت میکند و بهصورت اختیاری مسیر گواهی آن را اعتبارسنجی میکند
- هر revision بعدی را دستهبندی میکند و تصمیمهای DocMDP، FieldMDP، UR یا UR3، Identity و transformهای ناشناخته را اعمال میکند
- کاندیدای پذیرفتهشده را با جایگزینی اتمیک write-through منتشر میکند
رد شدن، کاندیدا را حذف میکند و هدف موجود را بایتبهبایت بدون تغییر باقی میگذارد
Options
| Member | Purpose |
|---|---|
Authentication | ipaCryptographic به یک امضای CMS معتبر روی byte range نیاز دارد، در حالی که ipaTrustedCertificate علاوه بر آن، cvsTrusted را از اعتبارسنجی مسیر گواهی و ابطال میخواهد |
RequireSignaturePolicy | وقتی True باشد (که پیشفرض است) اسنادی را که سیاست transform احرازشده ندارند رد میکند |
CertificateValidation | trust 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
- A structurally present policy never becomes authoritative until its signature authenticates successfully
- دیکشنریهای سیاست از snapshot امضاشده خوانده میشوند و به object امضای اصلی، byte range و مقدار CMS آن bind میشوند، تا یک revision بعدی نتواند مرجع اعتبار خودش را منحرف یا جایگزین کند
- حالت trusted-certificate زمانی مناسب است که علاوه بر یکپارچگی سند، هویت امضاکننده هم اهمیت داشته باشد
- متد معمولی
SaveIncrementalUpdateهمچنان برای workflowهای بدون امضا که اعمال سیاست نمیخواهند در دسترس است