Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача ключей по сети или через файл в CryptoAPI  (Прочитано 5834 раз)
0 Пользователей и 1 Гость смотрят эту тему.
warlocklex
Гость
« : 21-12-2006 19:48 » 

Не как не могу разобраться как передать ключ….пару ключей по сети.

На стороне сервера создает пару ключей:

// Получение хэндл криптопровайдера
if (!CryptAcquireContext(&hProv, NULL,MS_DEF_PROV,
    PROV_RSA_FULL,0))
{ShowMessage(IntToStr(g));
  return; }
// генерация сессионного ключа
if (!CryptGenKey(hProv,CALG_RC4,CRYPT_EXPORTABLE|CRYPT_ENCRYPT, &hSessionKey))
{
  ShowMessage("Error_CryptGenKey");  return;
}
// получение ключа для экспорта ключа шифрования
if (!CryptGetUserKey(hProv, AT_KEYEXCHANGE, &hPublicKey)){
  ShowMessage("error_CryptGetUserKey");
  return;         }
countbk = 0;

if (!CryptExportKey(hSessionKey, hPublicKey,SIMPLEBLOB, 0, NULL, &countbk)){
ShowMessage("error_CryptExportKey1");
  return;     }
/*BYTE* */data = static_cast<BYTE*>(malloc(countbk));

ZeroMemory(data, count);

// экспорт ключа шифрования
if (!CryptExportKey(hSessionKey, hPublicKey,SIMPLEBLOB, 0, data, &countbk)){
   ShowMessage("error_CryptExportKey");
  return;}


на стороне клиента что то связанное с:

if(!CryptImportKey(hProv, data, countbk, hPublicKey, 0, &hNewKey)){
    ShowMessage(GetLastError());
    ShowMessage("clientError_Key's import");
    return;}


в одной программе всё работает - это понятно. Но по сети не получается: я передавал
и data(BYTE *pbData) и countbk(DWORD dwDataLen) и hPublicKey(HCRYPTKEY hImpKey) .На разных машинах создаются разные провайдеры hProv(HCRYPTPROV hProv).

Или я не туда пошел.Подскажите!!!!ПЖАЛУЙСТА!! а то «у меня уже фляга брызжет».

Или ссылку где популярно обЪеснино или хотя бы намёк.
« Последнее редактирование: 11-12-2007 18:44 от Алексей1153++ » Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 22-12-2006 13:28 » 

Посмотри пример на сайте Microsoft
How to export and import plain text session keys by using CryptoAPI
http://support.microsoft.com/kb/228786
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines