Automatsko skaliranje CMS rezerviranog prostora
HotPDF može procijeniti odvojeni CMS spremnik bez pozivanja operacije privatnog ključa, vremenskog tijela ili potpisnika u kontrasat, a zatim ponovno izgraditi premali nepotpisani PDF prije nepovratne granice potpisivanja
Procjena bez nuspojava
HPDFCMSEstimatePlaceholder bira duljinu potpisa iz EstimatedSignatureBytes, pružatelja koji reklamira spcEstimateSignatureSize ili RSA modula u certifikatu potpisivanja, tim redoslijedom
Procjenitelj gradi točan statični oblik CMS-a sa sintetičkim potpisom te duljine, zadržava konfigurirane certifikate i statične potpise u kontrasat te zamjenjuje dinamičke pozive povratnim rezervama korisnog sadržaja koje je konfigurirao pozivatelj
THPDFCMSPlaceholderEstimateOptions.Default primjenjuje maržu od 50 posto, minimum od 1024 bajta, poravnanje od 256 bajta i maksimum od 16 MiB; procjene vremenskih oznaka i potpisa u kontrasat ostaju eksplicitne jer njihove veličine odgovora ovise o vanjskim uslugama
THPDFCMSPlaceholderEstimateInfo izvještava o odabranom izvoru, duljini potpisa, statičnoj CMS duljini, dinamičkoj rezervi, procijenjenoj CMS duljini i preporučenom poravnatom kapacitetu /Contents
Ponovna izgradnja prije potpisivanja
Funkcije automatske veličine ispituju postojeći kapacitet /Contents nakon pripreme /ByteRange
Ako je kapacitet ispod preporuke, THPDFCMSRebuildUnsignedPDFCallback prima potreban broj bajtova i upisuje svjež nepotpisani PDF u odredišni tok; ponovno izgrađeni rezervirani prostor se potvrđuje prije nego se pokrene bilo koji poziv potpisivanja
EstimateOptions := THPDFCMSPlaceholderEstimateOptions.Default;
AutoOptions := THPDFCMSAutoSizeOptions.Default;
AutoOptions.Estimate := EstimateOptions;
HPDFCMSSignPDFStreamWithProviderAutoSize(
InputStream, OutputStream, CertificateDER, Provider, KeyIdentifier,
SignOptions, AutoOptions,
procedure(ContentsBytes: Integer; Destination: TStream)
begin
BuildUnsignedPDF(ContentsBytes, Destination);
end,
AutoSizeInfo);
Ugovor o sigurnosti ponovnog pokušaja
HPDFCMSSignPDFStreamWithExternalSignerAutoSize nikada ponovno ne poziva vanjskog potpisnika nakon što vrati potpis; neočekivano prekoračenje vraća nepotpisani rezerviran prostor i podiže pogrešku koja sadrži stvarnu i dostupnu veličinu
HPDFCMSSignPDFStreamWithProviderAutoSize može ponoviti samo kada pružatelj reklamira spcSafeSignRetry, dostupan je poziv ponovne izgradnje i MaximumSigningRetries nije iscrpljen
Ako su omogućene vremenske oznake sadržaja, vremenske oznake potpisa ili dinamički potpisi u kontrasat, ponavljanje dodatno zahtijeva DynamicCallbacksSafeToRetry=True
Pružatelj s pozivom izlaže ConfigureSizeEstimation, udaljeni pružatelji prihvaćaju opcionalni procjenitelj i deklaraciju sigurnog ponavljanja, a PKCS#11 ili Windows pružatelji pohrane ključeva izvode RSA izlaznu duljinu iz certifikata bez diranja privatnog ključa
Dijagnostika i ograničenja
THPDFCMSAutoSizeInfo izvještava o početnim i konačnim kapacitetima, stvarnoj CMS duljini, broju ponovnih izgradnji, pokušajima potpisivanja i je li se dogodilo ponavljanje nakon potpisa
Preporučene veličine i veličine ponavljanja provjeravaju se širokom aritmetikom, poravnavaju unutar konfiguriranog maksimuma te odbijaju nevaljane postotke, brojeve ponavljanja, nulte duljine, neispravne certifikate, nepodržane ključeve i pozive ponovne izgradnje koji rezerviraju manje od zahtijevanog