Nhiều primary signer CMS

HotPDF có thể tạo một container SignedData RFC 5652 chứa tối đa 256 bản ghi SignerInfo primary độc lập

Yêu cầu dựng

Mỗi THPDFCMSPrimarySignerRequest tự cung cấp chứng chỉ và material khóa, digest tài liệu, THPDFCMSSignOptions, THPDFSignatureProvider tùy chọn, và định danh khóa của provider

HPDFCMSBuildMultiSignedData xác thực mọi request trước khi gọi bất kỳ khóa nội địa, callback bên ngoài, callback timestamp, callback PDF MAC, hoặc provider nào, ngăn một request sau không hợp lệ gây ra công việc ký từ xa một phần không đáng có

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

Gộp tất định

HPDFCMSMergeSignedData kết hợp các container CMS đã dựng cho quy trình ký bất đồng bộ hoặc phân tán mà không lặp lại thao tác khóa riêng tư

Mọi đầu vào phải dùng envelope và set signedData độ dài xác định, phải khai báo mọi thuật toán digest mà primary signer của nó dùng, và phải mang encapContentInfo giống nhau từng byte; các thuật toán digest khai báo bổ sung vẫn được phép

Container sau khi gộp khử trùng lặp thuật toán digest, chứng chỉ, và giá trị thu hồi, sắp xếp mọi giá trị SET OF theo thứ tự byte DER, giữ lại mọi primary signer, và nâng version bên ngoài lên yêu cầu hợp lệ cao nhất từ đầu vào

Thứ tự request cố ý không quan sát được sau khi mã hóa vì signerInfos là SET OF DER; kết quả phân tích và xác minh vì vậy dùng thứ tự DER thay vì thứ tự request

Một bản dựng một signer và một phép gộp một container giữ nguyên chính xác byte CMS hiện có

Xác minh độc lập

HPDFParseCMSSignatures, HPDFVerifyCMSSignaturesEx, và HPDFVerifyCMSSignerReport trả về kết quả độc lập cho từng primary signer, bao gồm attributes, chính sách digest và chữ ký, chứng chỉ khớp, timestamp, counter-signature, và trạng thái lỗi

Một signer sai định dạng hoặc không hợp lệ về mật mã không xóa kết quả của signer anh em hợp lệ, trong khi kết quả Boolean tổng hợp là false trừ khi mọi primary signer đều thành công

Định cỡ placeholder

HPDFCMSEstimateMultiSignerPlaceholder suy ra độ dài từng chữ ký mà không ký, dựng đúng hình dạng container tĩnh đã khử trùng lặp với các giá trị chữ ký tổng hợp, cộng các khoản dự trữ callback động, và áp dụng một lần biên an toàn toàn cục, căn chỉnh, tối thiểu, và tối đa đã cấu hình

THPDFCMSPlaceholderEstimateInfo.SignatureBytes báo cáo tổng của mọi primary signer và cpesMixed xác định kết quả có các signer dùng nguồn ước tính khác nhau

Ranh giới quy trình PDF

Các API multi-signer phơi bày chức năng CMS tổng quát cho ứng dụng mà profile tiêu thụ cho phép nhiều primary signer trong một container

Nhiều quy trình chữ ký PDF và PAdES mô hình hóa một primary signer cho mỗi từ điển chữ ký, nên hãy dùng các trường chữ ký PDF riêng trừ khi profile người nhận chấp nhận tường minh CMS multi-signer

Xem CMS SubjectKeyIdentifier signers, tính nhất quán thuật toán digest CMS, và CMS placeholder auto-sizing