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