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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline D-luzin  
#1 Оставлено : 3 апреля 2012 г. 21:14:57(UTC)
D-luzin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 1 раз
Добрый день! Есть задача генерации ключа по паролю, на одной стороне - .NET, на второй - интерфейс криптопровайдера CryptoPro CSP3.6.

Код через интерфейс криптопровайдера выглядит так:

HCRYPTKEY hKey;
char * szPassword = "Password";
DWORD dwLength = (DWORD)strlen(szPassword);
HCRYPTPROV hCryptProv;
HCRYPTHASH hHash;
if(CryptAcquireContext(
&hCryptProv,
NULL,
NULL,
PROV_GOST_2001_DH,
CRYPT_VERIFYCONTEXT))
{
if(CryptCreateHash(
hCryptProv,
CALG_GR3411,
0,
0,
&hHash))
{
if(CryptHashData(
hHash,
(BYTE *)szPassword,
dwLength,
0))
{
if(CryptDeriveKey(
hCryptProv,
CALG_G28147,
hHash,
CRYPT_EXPORTABLE,
&hKey))
{

//Выполняем дешифрование

}
}
}
}

Как в КриптоПро .NET сгенерировать такой же ключ? Или на стороне криптопровайдера CryptoPro CSP3.6 сгенерировать ключ, аналогичный генерируемому в КриптоПро .NET посредством Gost28147CryptoServiceProvider.ByDeriveBytes?
Пока мне не удалось достичь генерации одинаковых ключей
Offline Павел Смирнов  
#2 Оставлено : 4 апреля 2012 г. 12:07:37(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Попробуйте Gost28147CryptoServiceProvider.DeriveKey().
Техническую поддержку оказываем тут.
Наша база знаний.
Offline D-luzin  
#3 Оставлено : 4 апреля 2012 г. 13:52:53(UTC)
D-luzin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 1 раз
А смысл?
"Функциональность аналогична DeriveKey(array<Byte>[]()[][]) за исключением Com видимости."
Offline Георгий Садофьев  
#4 Оставлено : 4 апреля 2012 г. 17:37:04(UTC)
Георгий Садофьев

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

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

Поблагодарили: 33 раз в 32 постах
Возможно, проблема с кодировками, когда преобразуете строку в массив байтов.
Техническую поддержку оказываем тут
Наша база знаний
Offline D-luzin  
#5 Оставлено : 4 апреля 2012 г. 18:00:17(UTC)
D-luzin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 1 раз
Не похоже. Просто в КриптоAPI порядок такой: Пароль перегоняется в массив байт, хэшируется ГОСТ34.11, по хэшу строится ключ (по другому нельзя). В Крипто.NET ключ получается сразу по паролю. Пытались в крипто.NET получать хэш пароля по ГОСТ34.11 и его уже указывать в Gost28147CryptoServiceProvider.ByDeriveBytes - хэши совпали, но расшифровать не получается.
Offline Максим Коллегин  
#6 Оставлено : 4 апреля 2012 г. 21:15:02(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 721 раз в 625 постах
Ответ на ваш вопрос не может быть предоставлен специалистом технической поддержки и требует привлечения группы разработки.

http://www.cryptopro.ru/...6-e111-9235-0025900a9ce7
Пользователь Максим Коллегин прикрепил следующие файлы:
sdk.PNG (6kb) загружен 100 раз(а).

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