THotPDF.SaveIncrementalUpdateAuthenticated Method
Autentizuje politiky podepsaných revizí, odmítne zakázané změny a atomicky publikuje inkrementální update
Deklarace
function SaveIncrementalUpdateAuthenticated(
const TargetFile: TFileName;
const Options: THPDFAuthenticatedIncrementalUpdateOptions;
out Info: THPDFAuthenticatedIncrementalUpdateInfo
): Boolean; overload;
function SaveIncrementalUpdateAuthenticated(
const TargetFile: TFileName;
out Info: THPDFAuthenticatedIncrementalUpdateInfo
): Boolean; overload;
Workflow
- Zapíše čekající inkrementální revizi do unikátního kandidáta v cílovém adresáři
- Načte každou politiku z přesné revize chráněné jejím podpisovým bajtovým rozsahem
- Autentizuje každý CMS podpis nesoucí politiku a volitelně zvaliduje jeho certifikátovou cestu
- Klasifikuje každou pozdější revizi a vynutí rozhodnutí DocMDP, FieldMDP, UR nebo UR3, Identity i neznámých transformací
- Publikuje přijatého kandidáta write-through atomickou náhradou
Zamítnutí kandidáta smaže a existující cíl zůstane byte-for-byte beze změny
Volby
| Člen | Účel |
|---|---|
Authentication | ipaCryptographic vyžaduje platný CMS byte-range podpis, zatímco ipaTrustedCertificate navíc vyžaduje cvsTrusted z validace certifikátové cesty a revokace |
RequireSignaturePolicy | Při True (výchozí) odmítne dokumenty bez autentizované transform politiky |
CertificateValidation | Trust kotvy, intermediate certifikáty, offline revokační evidence, validační čas, účel a algoritmická politika používané režimem trusted certificate |
Detaily výsledku
THPDFAuthenticatedIncrementalUpdateInfo hlásí finální stav, index selhavšího podpisu, stav podpisu a certifikátu, celkový počet podpisů, počet autentizovaných politik a diagnostický issue
Důležité stavy zahrnují aiusAccepted, aiusNoSignaturePolicy, aiusSignatureInvalid, aiusCertificateUntrusted, aiusPolicyMalformed, aiusPolicyViolation a aiusCommitFailed
Použití
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;
Bezpečnostní hranice
- Strukturně přítomná politika se nikdy nestane autoritativní, dokud její podpis úspěšně neprojde autentizací
- Slovníky politik se čtou z podepsaného snapshotu a vážou se na původní podpisový objekt, bajtový rozsah a CMS hodnotu, takže pozdější revize nemůže přesměrovat či nahradit vlastní autoritu
- Režim trusted certificate je na místě, když kromě integrity dokumentu záleží i na identitě podepsané osoby
- Pro nepodepsané workflow, které nežádá vynucení politik, zůstává dostupná obyčejná metoda
SaveIncrementalUpdate