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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline rdgs  
#1 Оставлено : 24 августа 2010 г. 20:19:40(UTC)
rdgs

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

Группы: Участники
Зарегистрирован: 24.08.2010(UTC)
Сообщений: 3

Здраствуйте!
Подскажите пожалуйста как сформировать набор данных совпадающий с возвращаемым следующим кодом

var hashedDataClass = new CPICom.HashedDataClass{Algorithm CPICom.CAPICOM_HASH_ALGORITHM.CAPICOM_HASH_ALGORITHM_GOST3411};
(код представлен партнерами без каких либо дополнительных объяснений)

срествами CryptoAPI?

Какой алгоритм из winCrypt.h или winCryptEx.h является аналогом используемого?
Offline Kirill Sobolev  
#2 Оставлено : 25 августа 2010 г. 14:29:44(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Аналогом используемого является CALG_GR3411 из wincryptex.h
Техническую поддержку оказываем тут
Наша база знаний
Offline rdgs  
#3 Оставлено : 25 августа 2010 г. 16:46:53(UTC)
rdgs

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

Группы: Участники
Зарегистрирован: 24.08.2010(UTC)
Сообщений: 3

Используя "CALG_GR3411 из wincryptex.h" и выполняя хэширование:

//создаем хеширующий объект
CryptCreateHash(hCryptProv, CALG_GR3411, 0, 0, &hHash)

//выполняем хэширование
CryptHashData(hHash, pbInputData, nInputDataSize, 0)

CryptGetHashParam(hHash, HP_HASHSIZE, pbHashData, &nHashDataSize, 0)

BYTE *pbHashData = NULL
CryptGetHashParam(hHash, HP_HASHVAL, pbHashData, &nHashDataSize, 0)

//создаем массив для хранения хэша
pbHashData = new byte[nHashDataSize]

//получаем хеш
CryptGetHashParam(hHash, HP_HASHVAL, pbHashData, &nHashDataSize, 0)

получаем размер хэша 32 байта бинарных данных.

Выполняя хэширование средствами CPICom:

var hashedDataClass = new CPICom.HashedDataClass { Algorithm = CPICom.CAPICOM_HASH_ALGORITHM.CAPICOM_HASH_ALGORITHM_GOST3411 };
hashedDataClass.Hash(Encoding.GetEncoding(1251).GetString(fileBytes));

получаем строку хэша длиной 64 байта.

Как средствами CryptoAPI получить хэш эквивалентный хэшу CPICom?
Offline Kirill Sobolev  
#4 Оставлено : 25 августа 2010 г. 17:27:23(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Цитата:
Как средствами CryptoAPI получить хэш эквивалентный хэшу CPICom?

Преобразовать pbHashData к шестнадцатиричному виду, например с помощью CryptBinaryToString(.., CRYPT_STRING_HEX, ..)
Техническую поддержку оказываем тут
Наша база знаний
Offline rdgs  
#5 Оставлено : 25 августа 2010 г. 18:04:16(UTC)
rdgs

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

Группы: Участники
Зарегистрирован: 24.08.2010(UTC)
Сообщений: 3

хэши совпали, спасибо!
Offline Yury2014  
#6 Оставлено : 29 октября 2014 г. 20:02:32(UTC)
Yury2014

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

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

И тогда обратный вопрос:
Как средствами CPICom получить хэш эквивалентный хэшу CryptoAPI?
Offline Kirill Sobolev  
#7 Оставлено : 30 октября 2014 г. 10:25:10(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Цитата:
var hashedDataClass = new CPICom.HashedDataClass { Algorithm = CPICom.CAPICOM_HASH_ALGORITHM.CAPICOM_HASH_ALGORITHM_GOST3411 };
hashedDataClass.Hash(Encoding.GetEncoding(1251).GetString(fileBytes));

Если нужно бинарное представление, то для полученной строки вызвать метод HexToBinary объекта Utilities.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.