Підписувачі CMS SubjectKeyIdentifier

HotPDF може ідентифікувати основного CMS-підписувача через розширення X.509 subjectKeyIdentifier замість імені емітента та серійного номера сертифіката

Вибір ідентифікатора

HPDFCMSDefaultOptions встановлює THPDFCMSSignOptions.SignerIdentifier у cmsidIssuerAndSerialNumber, щоб наявні викликачі зберігали детерміновану байтову форму свого CMS

Встановіть поле в cmsidSubjectKeyIdentifier перед викликом HPDFCMSBuildSignedDataEx, CMS-будівника на основі постачальника, оцінки місця або перевантаження підписування високого рівня, що приймає THPDFCMSSignOptions

Options := HPDFCMSDefaultOptions(palBaseline_B_B);
Options.SignerIdentifier := cmsidSubjectKeyIdentifier;
CMS := HPDFCMSBuildSignedDataEx(KeyMaterial, DocumentDigest, Options);

Вимога до сертифіката

Сертифікат підписувача має містити рівно одне непорожнє розширення X.509 із OID 2.5.29.14, чиє значення розширення містить повний DER OCTET STRING

HotPDF завершується помилкою перед підписуванням, коли це розширення відсутнє, задубльоване, порожнє, обрізане чи пошкоджене; він не синтезує ідентифікатор ключа з відкритого ключа

SigningCertificateV2 продовжує прив'язувати той самий сертифікат через його поля емітента й серійного номера, навіть коли SID у SignerInfo використовує ідентифікатор ключа

Формат у wire-вигляді та перевірка

Ідентифікатор ключа кодується як примітивний IMPLICIT [0], SignerInfo.version дорівнює 3, а згенерована версія SignedData.version з одним підписувачем дорівнює 3, як вимагає RFC 5652

Перевірка вимагає, щоб байти SID збігалися з вбудованим розширенням сертифіката, і відхиляє неузгоджені значення SID, записи емітент-і-серійний із версією підписувача не 1, записи SKI із версією підписувача не 3 та SKI-контейнери, чия зовнішня версія нижча за 3

Компактна ідентичність корисна для орієнтованих на ключі сховищ сертифікатів і робочих процесів, які не зберігають кодувань імен емітентів, але споживче програмне забезпечення має підтримувати вибір SKI за RFC 5652

HPDFCMSBuildCounterSignerInfo продовжує використовувати ідентичності емітент-і-серійний; налаштуйте основного підписувача через THPDFCMSSignOptions

Див. сучасні постачальники підписів та узгодженість алгоритму дайджеста CMS