Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша
Статус: Новичок
Группы: Участники
Зарегистрирован: 12.05.2022(UTC) Сообщений: 2 Откуда: РФ
|
Браузер: Версия 101.0.4951.64 (Официальная сборка), (64 бит) Версия плагина: 2.0.14530 Криптопровайдер: Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider Версия криптопровайдера: 4.0.9963 Информация о сертификате Криптопровайдер: Microsoft Enhanced Cryptographic Provider v1.0 Алгоритм ключа: RSA Статус: Действителен Установлен в хранилище: Да Информация о публичном ключе: Algorithm: "1.2.840.113549.1.1.1" ("RSA") Length: 2048 bit
При тестировании на https://www.cryptopro.ru...page/cades_bes_file.html с этим сертификатом в полученной подписи алгоритм хэширования данных - sha1. Я понимаю, что для ГОСТ алгоритмов нежелательно (а может и нельзя) использовать предварительное хэширование, поэтому для этого варианта работает код: Код:
//_content - данные, закодированные в base64
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
yield oSignedData.propset_Content(_content);
var sign = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_PKCS7_TYPE, true);
Результат - подпись формируется, работает как с ГОСТ, так и другими алгоритмами в зависимости от данных в сертификате. Есть одно но с нашим "RSA сертификатом" - в информации о подписи алгоритм хэширования данных при подписании использовался SHA1, что является не надежным. Поэтому для этого случая отдельно формируем объект CAdESCOM.HashedData с алгоритмом CADESCOM_HASH_ALGORITHM_SHA_256, который в последствии поступает в SignHash. Есть предположение, что SignHash смотрит на алгоритм публичного ключа сертификата, видит "1.2.840.113549.1.1.1", на основании этого выбирает допустимый алгоритм хэширования только sha1, видит несоотвествие поступившего хэша sha256 с допустимыми и поэтому выдает ошибку "Указан неправильный алгоритм (0x80090008)". Для правильной работы SignHash с алгоритмом подписи RSA нужно убрать жесткий контроль алгоритма хэширования или расширить список допустимых. Дата изменения: пользователем 13 мая 2022 г. 12:29:07(UTC)
| Причина: Не указана
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close