Подписи Brainpool ECDSA

HotPDF создаёт и проверяет отсоединённые CMS-подписи с сертификатами brainpoolP256r1, brainpoolP384r1 и brainpoolP512r1 через уже существующие конвейеры ECDSA signing provider и загруженных подписей

Разрешённые комбинации digest

КриваяРазрешённые digest
brainpoolP256r1SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-384, SHA3-512
brainpoolP384r1SHA-384, SHA-512, SHA3-384, SHA3-512
brainpoolP512r1SHA-512, SHA3-512

HPDFCMSBuildSignedDataEx, HPDFCMSBuildSignedDataWithProvider, сценарии с внешним signer'ом, подпись stream и сборка мультиподписей валидируют эту матрицу до вызова signing callback или provider'а

При верификации сообщается о несовпадении digest-алгоритма, если digest подписанта, digest-специфичный идентификатор ECDSA-подписи или политика кривой Brainpool выбирают несовместимую комбинацию

Строгое кодирование сертификата и подписи

Сертификат подписанта должен кодировать id-ecPublicKey ровно с одним распознанным идентификатором объекта ECParameters.namedCurve в SubjectPublicKeyInfo

Явные или неявные параметры кривой, хвостовые параметры алгоритма, неизвестные кривые и параметры AlgorithmIdentifier ECDSA-подписи отвергаются, а не нормализуются

Значения CMS-подписи используют каноническое DER-кодирование ECDSA-Sig-Value, включая минимально закодированные положительные целые r и s

Криптопровайдер Windows

Локальная верификация импортирует каждую публичную точку Brainpool через универсальный ECDSA-провайдер Windows CNG с неизменяемым свойством ECCCurveName

Если операционная система не отдаёт запрошенную именованную кривую, HotPDF возвращает отдельный результат «не поддерживается» или «провайдер недоступен» и не подменяет кривую другой

См. современные signature provider, PDF-подписи и timestamp SHA3 и согласованность digest-алгоритмов CMS — там описаны окружающие контракты производителя и верификатора