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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline mgurov  
#1 Оставлено : 22 июня 2012 г. 14:39:45(UTC)
mgurov

Статус: Участник

Группы: Участники
Зарегистрирован: 22.05.2012(UTC)
Сообщений: 22
Откуда: СПб

Здравствуйте!

помогите разобраться с последовательностью действий...

задача стоит в следующем - сформировать хеш файла на линуксовой машине по ГОСТу. передать хеш на виндовую и там этот хеш подписать.

формирую хеш так

Код:

...

//создание структуры с хешом
    if (!CryptCreateHash(hProv, CALG_GR3411, 0, 0, &hHash)) {

        res = SCA_CRYPT_CREATE_HASH;
        goto er;
    }

    //установка обязательного параметра
    if (!CryptSetHashParam(hHash, HP_OID, (BYTE*) OID_HashVerbaO, 0)) {

        res = SCA_CRYPT_SET_HASH_PARAM;
        goto er;
    }

    //хеширование входного файла
    do {
        cbRead = (DWORD) fread(rgbFile, 1, 1024, hFile);


        if (!CryptHashData(hHash, rgbFile, cbRead, 0)) {
            res = SCA_CRYPT_HASH_DATA;
            goto er;
            }
    } while (!feof(hFile));

    cbHash = 64;
    if (!CryptGetHashParam(hHash, HP_HASHVAL, rgbHash, &cbHash, 0)) {

        res = SCA_CRYPT_GET_HASH_PARAM;
        goto er;
        
    }
// далее пишу rgbHash в файл и передаю на виндовый клиент


на винде пытался восстановить хеш с помощью CryptCreateHash и CryptSGetHashParam

во первых, CryptCreateHash надо было сунуть алгоритм CALG_GR3411, но виндовые h файлы не знают о нем ничего

в связи с этим два вопроса:
1) можно ли этот хэш, находящийся в файле подписывать как файл а не как хеш и правильно ли это будет? (просто уже есть готовая функция подписи для файла на стороне винды, реализованная с помощью CryptSignMessage, Но т.к. файлы могут быть большими - необходимо на винду передавать только хеш и я не уверен что правильно будет если я подставлю в эту функцию файл с хешом...)

2) как правильно воссоздать структуру хеша на винде в моей ситуации, имея набор байтов, сгенерированных на линуксовой машине в приведенном выше коде?

Отредактировано пользователем 22 июня 2012 г. 14:54:50(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#2 Оставлено : 22 июня 2012 г. 14:44:54(UTC)
Андрей *

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

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

Сказал «Спасибо»: 555 раз
Поблагодарили: 2252 раз в 1757 постах
Цитата:
на винде пытался восстановить хеш с помощью CryptCreateHash и CryptSGetHashParam

во первых, CryptCreateHash надо было сунуть алгоритм CALG_GR3411, но виндовые h файлы не знают о нем ничего



SDK\samples\include\WinCryptEx.h



Отредактировано пользователем 22 июня 2012 г. 14:47:47(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline mgurov  
#3 Оставлено : 25 июня 2012 г. 13:33:09(UTC)
mgurov

Статус: Участник

Группы: Участники
Зарегистрирован: 22.05.2012(UTC)
Сообщений: 22
Откуда: СПб

Андрей * написал:
Цитата:
на винде пытался восстановить хеш с помощью CryptCreateHash и CryptSGetHashParam

во первых, CryptCreateHash надо было сунуть алгоритм CALG_GR3411, но виндовые h файлы не знают о нем ничего



SDK\samples\include\WinCryptEx.h






в этом случае на винде обязательно должен быть установлен криптопро? или если я подключу файл WinCryptEx, и возьму отттуда только константы, этого будет достаточно?

сейчас я обхожусь стандартными win api

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