Статус: Активный участник
Группы: Участники
Зарегистрирован: 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? Пока мне не удалось достичь генерации одинаковых ключей
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Попробуйте Gost28147CryptoServiceProvider.DeriveKey(). |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.02.2012(UTC) Сообщений: 32 Откуда: Пермь
Сказал(а) «Спасибо»: 1 раз
|
А смысл? "Функциональность аналогична DeriveKey(array<Byte>[]()[][]) за исключением Com видимости."
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 150  Поблагодарили: 33 раз в 32 постах
|
Возможно, проблема с кодировками, когда преобразуете строку в массив байтов. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.02.2012(UTC) Сообщений: 32 Откуда: Пермь
Сказал(а) «Спасибо»: 1 раз
|
Не похоже. Просто в КриптоAPI порядок такой: Пароль перегоняется в массив байт, хэшируется ГОСТ34.11, по хэшу строится ключ (по другому нельзя). В Крипто.NET ключ получается сразу по паролю. Пытались в крипто.NET получать хэш пароля по ГОСТ34.11 и его уже указывать в Gost28147CryptoServiceProvider.ByDeriveBytes - хэши совпали, но расшифровать не получается.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,406  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 721 раз в 625 постах
|
Ответ на ваш вопрос не может быть предоставлен специалистом технической поддержки и требует привлечения группы разработки. http://www.cryptopro.ru/...6-e111-9235-0025900a9ce7Пользователь Максим Коллегин прикрепил следующие файлы:  sdk.PNG (6kb) загружен 100 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close