Подписи Brainpool ECDSA
HotPDF создаёт и проверяет отсоединённые CMS-подписи с сертификатами brainpoolP256r1, brainpoolP384r1 и brainpoolP512r1 через уже существующие конвейеры ECDSA signing provider и загруженных подписей
Разрешённые комбинации digest
| Кривая | Разрешённые digest |
|---|---|
brainpoolP256r1 | SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-384, SHA3-512 |
brainpoolP384r1 | SHA-384, SHA-512, SHA3-384, SHA3-512 |
brainpoolP512r1 | SHA-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 — там описаны окружающие контракты производителя и верификатора