CMS višestruki primarni potpisnici
HotPDF može da formira jedan RFC 5652 SignedData kontejner koji sadrži do 256 nezavisnih primarnih SignerInfo zapisa
Zahtevi za formiranje
Svaki THPDFCMSPrimarySignerRequest obezbeđuje sopstveni sertifikat i ključni materijal, sažetak dokumenta, THPDFCMSSignOptions, opcioni THPDFSignatureProvider i identifikator ključa dobavljača
HPDFCMSBuildMultiSignedData validira svaki zahtev pre pozivanja bilo kog nativnog ključa, eksternog callback-a, callback-a vremenskog žiga, PDF MAC callback-a ili dobavljača, sprečavajući da nevažeći kasniji zahtev izazove izbegljiv delimičan rad daljinskog potpisivanja
SetLength(Signers, 2);
Signers[0].KeyMaterial := FirstKey;
Signers[0].DocumentDigest := HPDFCMSDigestBytes(DocumentBytes, cmsdaSHA256);
Signers[0].Options := FirstOptions;
Signers[1].KeyMaterial := SecondKey;
Signers[1].DocumentDigest := HPDFCMSDigestBytes(DocumentBytes, cmsdaSHA384);
Signers[1].Options := SecondOptions;
Signers[1].Provider := RemoteProvider;
Signers[1].KeyIdentifier := 'approval-key';
CMS := HPDFCMSBuildMultiSignedData(Signers);
Determinističko spajanje
HPDFCMSMergeSignedData kombinuje već formirane CMS kontejnere za asinhrone ili distribuirane tokove rada potpisivanja bez ponavljanja operacija privatnog ključa
Svaki ulaz mora koristiti koverte i skupove signedData definisane dužine, mora deklarisati svaki algoritam sažetka koji koriste njegovi primarni potpisnici i mora nositi po bajt identičan encapContentInfo; dodatni deklarirani algoritmi sažetka ostaju dozvoljeni
Objedinjeni kontejner deduplikuje algoritme sažetka, sertifikate i vrednosti povlačenja, sortira sve SET OF vrednosti po DER redu bajtova, čuva svakog primarnog potpisnika i podiže spoljnu verziju na najviši važeći ulazni zahtev
Redosled zahteva namerno nije vidljiv nakon kodiranja jer je signerInfos DER SET OF; rezultati parsiranja i verifikacije stoga koriste DER redosled umesto redosleda zahteva
Formiranje s jednim potpisnikom i spajanje s jednim kontejnerom čuvaju postojeće CMS bajtove tačno
Nezavisna validacija
HPDFParseCMSSignatures, HPDFVerifyCMSSignaturesEx i HPDFVerifyCMSSignerReport vraćaju nezavisan rezultat za svakog primarnog potpisnika, uključujući njegove atribute, sažetak i politiku potpisa, odgovarajući sertifikat, vremenske žigove, kontra-potpise i status neuspeha
Neispravaan ili kriptografski nevažeći potpisnik ne briše važeći rezultat sestrinskog potpisa, dok je agregatni boolov rezultat lažan osim ako svaki primarni potpisnik ne uspe
Skaliranje rezervisanog prostora
HPDFCMSEstimateMultiSignerPlaceholder izvodi dužinu svakog potpisa bez potpisivanja, formira tačan deduplikovan statički oblik kontejnera sa sintetičkim vrednostima potpisa, sabira dinamičke rezerve callback-a i jednom primenjuje konfigurisane globalnu sigurnosnu marginu, poravnanje, minimum i maksimum
THPDFCMSPlaceholderEstimateInfo.SignatureBytes izveštava zbir za sve primarne potpisnike, a cpesMixed identifikuje rezultat čiji su potpisnici koristili različite izvore procene
Granica PDF toka rada
API-ji višestrukih potpisnika izlažu generičku CMS funkcionalnost za aplikacije čiji profil potrošnje dozvoljava više primarnih potpisnika u jednom kontejneru
Mnogi PDF potpis i PAdES tokovi rada modeluju jednog primarnog potpisnika po rečniku potpisa, pa koristite odvojena polja PDF potpisa osim ako profil primaoca eksplicitno ne prihvata CMS sa više potpisnika
Pogledajte CMS-subjectKeyIdentifier potpisnici, CMS doslednost algoritma sažetka i CMS automatsko skaliranje rezervisanog prostora