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