Πολλαπλοί κύριοι υπογράφοντες CMS

Το HotPDF μπορεί να δημιουργήσει ένα container SignedData RFC 5652 που περιέχει έως 256 ανεξάρτητες κύριες εγγραφές SignerInfo

Αιτήματα κατασκευής

Κάθε THPDFCMSPrimarySignerRequest παρέχει το δικό του υλικό πιστοποιητικού και κλειδιού, digest εγγράφου, THPDFCMSSignOptions, προαιρετικό THPDFSignatureProvider, και αναγνωριστικό κλειδιού παρόχου

Η HPDFCMSBuildMultiSignedData επικυρώνει κάθε αίτημα πριν καλέσει οποιοδήποτε εγγενές κλειδί, εξωτερικό callback, callback χρονικής σφράγισης, callback PDF MAC, ή πάροχο, αποτρέποντας ένα μη έγκυρο μεταγενέστερο αίτημα από το να προκαλέσει περιττή μερική απομακρυσμένη εργασία υπογραφής

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

Αιτιοκρατική συγχώνευση

Η HPDFCMSMergeSignedData συνδυάζει ήδη κατασκευασμένα containers CMS για ασύγχρονες ή κατανεμημένες ροές εργασίας υπογραφής, χωρίς να επαναλαμβάνει πράξεις ιδιωτικού κλειδιού

Κάθε είσοδος πρέπει να χρησιμοποιεί περιβλήματα και σύνολα signedData ορισμένου μήκους, να δηλώνει κάθε αλγόριθμο digest που χρησιμοποιούν οι κύριοι υπογράφοντές της, και να φέρει byte-identical encapContentInfo· επιπλέον δηλωμένοι αλγόριθμοι digest παραμένουν αποδεκτοί

Το συγχωνευμένο container αφαιρεί διπλότυπα σε αλγορίθμους digest, πιστοποιητικά και τιμές ανάκλησης, ταξινομεί όλες τις τιμές SET OF κατά DER byte order, διατηρεί κάθε κύριο υπογράφοντα, και ανεβάζει την εξωτερική έκδοση στην υψηλότερη έγκυρη απαίτηση των εισόδων

Η σειρά αιτημάτων δεν παρατηρείται επίτηδες μετά την κωδικοποίηση, επειδή το signerInfos είναι DER SET OF· τα αποτελέσματα ανάλυσης και επαλήθευσης χρησιμοποιούν επομένως τη σειρά DER και όχι τη σειρά αιτημάτων

Μια κατασκευή με έναν υπογράφοντα και μια συγχώνευση ενός container διατηρούν ακριβώς τα υπάρχοντα bytes CMS

Ανεξάρτητη επικύρωση

Οι HPDFParseCMSSignatures, HPDFVerifyCMSSignaturesEx και HPDFVerifyCMSSignerReport επιστρέφουν ανεξάρτητο αποτέλεσμα για κάθε κύριο υπογράφοντα, συμπεριλαμβανομένων των attributes, της πολιτικής digest και υπογραφής, του ταιριάζοντος πιστοποιητικού, των χρονικών σφραγίδων, των αντι-υπογραφών, και της κατάστασης αποτυχίας

Ένας ελαττωματικός ή κρυπτογραφικά μη έγκυρος υπογράφων δεν διαγράφει το έγκυρο αποτέλεσμα αδελφικού υπογράφοντα, ενώ το συγκεντρωτικό Boolean αποτέλεσμα είναι false εκτός αν όλοι οι κύριοι υπογράφοντες πετύχουν

Καθορισμός μεγέθους placeholder

Η HPDFCMSEstimateMultiSignerPlaceholder παράγει το μήκος κάθε υπογραφής χωρίς υπογραφή, κατασκευεί το ακριβές deduplicated στατικό σχήμα container με συνθετικές τιμές υπογραφής, αθροίζει τα δυναμικά αποθέματα callbacks, και εφαρμόζει μία φορά το ρυθμισμένο παγκόσμιο περιθώριο ασφαλείας, τη στοίχιση, το ελάχιστο και το μέγιστο

Το THPDFCMSPlaceholderEstimateInfo.SignatureBytes αναφέρει το άθροισμα για όλους τους κύριους υπογράφοντες και το cpesMixed εντοπίζει αποτέλεσμα του οποίου οι υπογράφοντες χρησιμοποίησαν διαφορετικές πηγές εκτίμησης

Όριο ροής εργασίας PDF

Τα APIs πολλαπλών υπογραφόντων εκθέτουν γενική λειτουργικότητα CMS για εφαρμογές των οποίων το προφίλ κατανάλωσης επιτρέπει πολλούς κύριους υπογράφοντες σε ένα container

Πολλές ροές εργασίας υπογραφής PDF και PAdES μοντελοποιούν έναν κύριο υπογράφοντα ανά λεξικό υπογραφής, γι' αυτό χρησιμοποιήστε ξεχωριστά πεδία υπογραφής PDF εκτός αν το προφίλ του παραλήπτη δέχεται ρητά CMS πολλαπλών υπογραφόντων

Δείτε τους υπογράφοντες CMS με SubjectKeyIdentifier, τη συνέπεια αλγορίθμου digest CMS, και το αυτόματο sizing placeholder CMS