CMS flera primära signerare

HotPDF kan skapa en RFC 5652-SignedData-behållare som innehåller upp till 256 oberoende primära SignerInfo-poster

Byggförfrågningar

Varje THPDFCMSPrimarySignerRequest tillhandahåller sitt eget certifikat- och nyckelmaterial, dokumentdigest, THPDFCMSSignOptions, valfritt THPDFSignatureProvider och leverantörens nyckelidentifierare

HPDFCMSBuildMultiSignedData validerar varje förfrågan före anrop av någon nativ nyckel, extern callback, tidsstämpelcallback, PDF-MAC-callback eller leverantör, vilket förhindrar att en ogiltig senare förfrågan orsakar onödigt delvis fjärrsigneringsarbete

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);

Deterministisk sammanslagning

HPDFCMSMergeSignedData kombinerar redan byggda CMS-behållare för asynkrona eller distribuerade signeringsarbetsflöden utan att upprepa privata nyckeloperationer

Varje indata måste använda kuvert och uppsättningar med bestämd längd i signedData, måste förklara varje digestalgoritm som dess primära signerare använder och måste bära byte-identiska encapContentInfo; ytterligare förklarade digestalgoritmer förblir tillåtna

Den sammanslagna behållaren avduplicerar digestalgoritmer, certifikat och återkallelsevärden, sorterar alla SET OF-värden efter DER-byteordning, bevarar varje primär signerare och höjer den yttre versionen till det högsta giltiga indatakravet

Förfrågeordning är avsiktligt inte observerbar efter kodning eftersom signerInfos är en DER-SET OF; parsings- och verifieringsresultat använder därför DER-ordning i stället för förfrågeordning

En en-signerare-byggnad och en en-behållare-sammanslagning bevarar de befintliga CMS-bytana exakt

Oberoende validering

HPDFParseCMSSignatures, HPDFVerifyCMSSignaturesEx och HPDFVerifyCMSSignerReport returnerar ett oberoende resultat för varje primär signerare, inklusive dess attribut, digest- och signaturpolicy, matchande certifikat, tidsstämplar, kontrasignaturer och felstatus

En felformaterad eller kryptografiskt ogiltig signerare raderar inte ett giltigt syskonresultat, medan det aggregerade Booleska resultatet är falskt om inte varje primär signerare lyckas

Platshållarstorlek

HPDFCMSEstimateMultiSignerPlaceholder härleder varje signaturlängd utan signering, bygger den exakta avduplicerade statiska behållarformen med syntetiska signaturvärden, summerar dynamiska callback-reserver och tillämpar den konfigurerade globala säkerhetsmarginalen, inriktningen, min- och maxvärdet en gång

THPDFCMSPlaceholderEstimateInfo.SignatureBytes rapporterar summan för alla primära signerare och cpesMixed identifierar ett resultat vars signerare använde olika uppskattningskällor

PDF-arbetsflödesgräns

Multi-signerar-API:erna exponerar generisk CMS-funktionalitet för applikationer vars konsumerande profil tillåter flera primära signerare i en behållare

Många PDF-signatur- och PAdES-arbetsflöden modellerar en primär signerare per signaturordlista, så använd separata PDF-signaturfält om inte mottagarprofilen explicit accepterar multi-signerar-CMS

Se CMS SubjectKeyIdentifier-signerare, CMS-digest-algoritmkonsistens och CMS-platshållar-autostorlek