Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline YuriVG  
#1 Оставлено : 13 декабря 2018 г. 12:44:16(UTC)
YuriVG

Статус: Новичок

Группы: Участники
Зарегистрирован: 13.12.2016(UTC)
Сообщений: 6
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Добрый день.

Стоит задача получения хэша строк по алгоритму gost3411-2012

Насколько я понимаю, для этого предназначена функция SignHash из Gost3410CryptoServiceProvider (CryptoPro.Sharpei.*.dll)
Пример использования нашел тут.

Пример вроде рабочий, но в процессе появляются диалоговые окна о необходимости перехода на новый стандарт, генерации случайной последовательности, задания пароля на ключевой контейнер...

Как от них (диалоговых окон избавиться)?
Создаваемое приложение должно работать сервисом и никакие диалоговые окна появляться не должны...

С Уважением, Юрий.
Offline two_oceans  
#2 Оставлено : 13 декабря 2018 г. 13:18:54(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Добрый день.
Если появляются диалоговые окна о необходимости перехода на новый стандарт, то производится обращение к ключу гост-2001 или генерация ключа ГОСТ-2001. Поэтому, во-первых, в примере нужно взять другой класс с алгоритмом гост-2012, который Вам нужен - сообщение о переходе на новый стандарт уйдет. Также по отключению данного типа окон есть инструкция на этом форуме.
Сообщение о "генерации случайной последовательности, задания пароля на ключевой контейнер..." свидетельствует, что: 1) Вы используете неправильную функцию - SignHash превращает уже вычисленный хэш данных в подпись с использованием закрытого ключа. В этом примере хэш уже вычислен и задан в виде массива.
2) в качестве закрытого ключа указано наименование контейнера ключа которого у Вас нет, поэтому Вам предлагается его сгенерировать и сохранить. Если укажете существующий ключ, то окон создания ключа не будет.

Если Вам нужно вычислять только хэша строк по алгоритму гост-2012 и Вы не собираетесь его сразу подписывать, то закрытый ключ вообще не нужен. Полагаю нужен класс Gost3411_2012_256 или Gost3411_2012_512 и один из вариантов ComputeHash в классе. Ну и в целом для сервисов желательно указание тихого режима флагом SILENT, но это уже немного не моя область практики, подробнее не смогу объяснить.

Отредактировано пользователем 13 декабря 2018 г. 13:25:23(UTC)  | Причина: Не указана

Offline YuriVG  
#3 Оставлено : 13 декабря 2018 г. 15:18:23(UTC)
YuriVG

Статус: Новичок

Группы: Участники
Зарегистрирован: 13.12.2016(UTC)
Сообщений: 6
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Спасибо за направление дальнейшего поиска, но почему-то у меня в библиотеке CryptoPro.Sharpei.Base.dll (размер 121344 байт) отсутствуют классы
Gost3411_2012* (Gost3411_2012_512, Gost3411_2012_512CryptoServiceProvider);

Установлена CryptoPro .NET 1.0.5913
Это я туплю?

Или речь шла о чем-то вроде:

Цитата:

Gost3411CryptoServiceProvider gost = new Gost3411CryptoServiceProvider();
byte[] data = { 0xE4, 0x2C, 0x17, 0xAA, 0x76, 0x5F, 0xA7, 0xEC,
0xEC, 0x80, 0x35, 0x6D, 0x67, 0x42, 0x5E, 0x5D,
0xD7, 0xFA, 0x3E, 0x03, 0x05, 0x2D, 0xFD, 0x53,
0xF8, 0x36, 0xAB, 0x55, 0x24, 0x00, 0xBD, 0x1B};
// Вычисляем значение хеш.
byte[] result = gost.ComputeHash(data );



С Уважением, Юрий.

Отредактировано пользователем 13 декабря 2018 г. 16:44:10(UTC)  | Причина: Не указана

Offline Максим Коллегин  
#4 Оставлено : 14 декабря 2018 г. 9:59:45(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,373
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 31 раз
Поблагодарили: 702 раз в 611 постах
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.