CMS automatsko skaliranje rezervisanog prostora
HotPDF može da proceni odvojeni CMS kontejner bez pozivanja operacije privatnog ključa, organa vremenskog žiga ili kontra-potpisnika, zatim ponovo formira nepotpisani PDF premale veličine pre nepovratne granice potpisivanja
Procena bez sporednih efekata
HPDFCMSEstimatePlaceholder bira dužinu potpisa iz EstimatedSignatureBytes, dobavljača koji reklamira spcEstimateSignatureSize ili RSA modula u sertifikatu za potpisivanje, tim redosledom
Procenjivač formira tačan statički CMS oblik sa sintetičkim potpisom te dužine, zadržava konfigurisane sertifikate i statičke kontra-potpise te zamenjuje dinamičke callback-e rezervama sadržaja konfigurabilnim od strane pozivaoca
THPDFCMSPlaceholderEstimateOptions.Default primenjuje marginu od 50 posto, minimum od 1 024 bajta, poravnanje od 256 bajtova i maksimum od 16 MiB; procene vremenskog žiga i kontra-potpisa ostaju eksplicitne jer njihove veličine odgovora zavise od eksternih usluga
THPDFCMSPlaceholderEstimateInfo izveštava odabrani izvor, dužinu potpisa, statičku CMS dužinu, dinamičku rezervu, procenjenu CMS dužinu i preporučeni usklađen kapacitet /Contents
Ponovo formiraje pre potpisivanja
Funkcije automatskog skaliranja pregledaju postojeći kapacitet /Contents nakon pripremanja /ByteRange
Ako je kapacitet ispod preporuke, THPDFCMSRebuildUnsignedPDFCallback prima potreban broj bajtova i upisuje svež nepotpisani PDF u izloženi ciljni tok; ponovo formirani rezervisani prostor se validuje pre nego što se pokrene bilo koji callback 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 bezbednosti ponavljanja
HPDFCMSSignPDFStreamWithExternalSignerAutoSize nikada više ne poziva eksternog potpisnika nakon što ovaj vrati potpis; neočekivano prekoračenje vraća nepotpisani rezervisani prostor i podiže grešku koja sadrži stvarne i dostupne veličine
HPDFCMSSignPDFStreamWithProviderAutoSize može da ponavlja samo kada dobavljač reklamira spcSafeSignRetry, dostupan je callback ponovnog formiranja i nije iscrpljeno MaximumSigningRetries
Ako su omogućeni vremenski žigovi sadržaja, vremenski žigovi potpisa ili dinamički kontra-potpisi, ponavljanje dodatno zahteva DynamicCallbacksSafeToRetry=True
Callback dobavljač izlaže ConfigureSizeEstimation, daljinski dobavljači prihvataju opcioni procenjivač i deklaraciju bezbednog ponavljanja, a PKCS#11 ili Windows key-storage dobavljači izvode RSA izlaznu dužinu iz sertifikata bez diranja privatnog ključa
Dijagnostika i ograničenja
THPDFCMSAutoSizeInfo izveštava početne i konačne kapacitete, stvarnu CMS dužinu, broj ponovnih formiranja, pokušaje potpisivanja i da li je došlo do ponavljanja nakon potpisa
Preporučene veličine i veličine ponavljanja proveravaju se širokom aritmetikom, usklađuju se unutar konfigurisanog maksimuma i odbijaju nevažeće procente, brojanja ponavljanja, nulte dužine, neispravne sertifikate, nepodržane ključeve i callback-e ponovnog formiranja koji rezervišu manje od traženog