Tính nhất quán thuật toán digest CMS
HotPDF chẩn đoán các định danh thuật toán CMS không nhất quán trước khi đọc phạm vi tài liệu đã ký, hash nội dung, dựng đường dẫn chứng chỉ, hoặc gọi provider chữ ký
Các kiểm tra nhất quán
SignerInfo.digestAlgorithm hiện tại phải có mặt trong tập SignedData.digestAlgorithms bao ngoài, trong khi các thuật toán phụ không liên quan vẫn được phép cho container multi-signer có khả năng tương tác
Các OID chữ ký RSA PKCS#1 v1.5 và ECDSA theo digest, cùng hash tường minh trong tham số RSA-PSS, phải chọn cùng digest với SignerInfo.digestAlgorithm
Khi thuộc tính ký CMSAlgorithmProtection theo RFC 6211 xuất hiện, nó phải xuất hiện đúng một lần với một giá trị, và các giá trị AlgorithmIdentifier của digest và chữ ký được bảo vệ phải khớp với các trường SignerInfo thực tế
Tham số vắng mặt và tham số DER NULL được coi là tương đương với các định danh thuật toán không tham số; các tham số khác so khớp chính xác để các cơ chế chữ ký có tham số không thể bị chuẩn hóa ngầm
Kết quả máy đọc được
HPDFParseCMSSignature giữ lại metadata đã phân tích thành công nhưng đặt THPDFSignatureInfo.Status thành svDigestAlgorithmMismatch khi một kiểm tra nhất quán thất bại
Xác minh trả về svDigestAlgorithmMismatch, các báo cáo validation dùng vfcDigestAlgorithmMismatch, và JSON phát ra digestAlgorithmMismatch mà không gộp điều kiện này thành CMS sai định dạng, thuật toán không hỗ trợ, hoặc không khớp digest nội dung
THPDFSignatureInfo.DigestAlgorithmOID ghi lại OID digest của signer và THPDFSignatureInfo.DigestConsistencyIssue chọn một trong các nguyên nhân sau
dciSignerDigestNotDeclared— digest đã biết của signer không có trong tập digest bên ngoàidciSignatureDigestMismatch— một cơ chế chữ ký cố định hoặc có tham số chọn digest khácdciAlgorithmProtectionDigestMismatch— định danh digest được bảo vệ khác với định danh digest của signerdciAlgorithmProtectionSignatureMismatch— định danh chữ ký được bảo vệ khác với định danh chữ ký của signer
Các object signer trong JSON phơi bày cùng thông tin qua digestAlgorithmOID và digestConsistencyIssue với các giá trị signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch, hoặc algorithmProtectionSignatureMismatch
Timestamp và thứ tự ưu tiên
Timestamp tài liệu RFC 3161 và token signature-timestamp không ký dùng cùng các kiểm tra, và giá trị THPDFTimestampInfo.DigestConsistencyIssue của chúng xác định một container CMS lồng ghép không nhất quán
Lỗi cấu trúc vẫn thất bại như CMS sai định dạng, digest signer không xác định vẫn không được hỗ trợ, và vấn đề nhất quán xác định đầu tiên được giữ theo thứ tự container, algorithm-protection, rồi signature-mechanism
Xem các provider chữ ký hiện đại và THotPDF.VerifyLoadedSignatureWithOptions để biết các hợp đồng provider và xác minh tài liệu đã nạp