Форум программистов, компьютерный форум CyberForum.ru

Генерация сессионного ключа AES - C++

Восстановить пароль Регистрация
 
hknower
0 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 55
25.04.2014, 15:37     Генерация сессионного ключа AES #1
Добрый день

Нужно сгенерировать aes-256 ключ.

Начал с простого:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
int CreateSessionKey(struct key* key_toret)
{
    //Генерация сессионного ключа
    HCRYPTPROV hProv;
    HCRYPTKEY hKey;
    if(!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_AES,CRYPT_VERIFYCONTEXT))
    {
        printf("\nCryptAcquireContext error");
        return 0;
    }
    
    if(!CryptGenKey(hProv , CALG_AES_256,CRYPT_EXPORTABLE,&hKey))
    {
        printf("\nCryptGenKey error");
        return 0;   
    }
 
//      Этот код работает и показывает keylen =256
//  DWORD keylen_test;
//  DWORD len_test = sizeof(keylen_test);
//  CryptGetKeyParam(hKey , KP_KEYLEN , (BYTE*)&keylen_test , &len_test , 0);
//  printf("\nkeylen = %d" , keylen_test);
 
    BYTE aes_key[MAX_PATH];
    DWORD aes_keylen=0;
 
    if(!CryptExportKey(hKey  , 0 , PRIVATEKEYBLOB , 0 , aes_key , &aes_keylen))
    {
        int err=GetLastError();
        printf("\nCryptExportKey error=%d" , err);
    }
 
    CryptDestroyKey(hKey);
    CryptReleaseContext(hProv, 0);
    
       key_toret->key = aes_key;
       key_toret->key_len = aes_keylen;
 
       return 1;
}
Код отрабатывает и показывает:
C++ (Qt)
1
2
CryptExportKey error=2148073475
keyen=0
Мне всего лишь нужен сгенеренный ключ
Что я делаю не так?
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 15:37     Генерация сессионного ключа AES
Посмотрите здесь:

C++ Генератор случайных чисел на базе алгоритма AES
C++ Хэширование md5 и шифрование AES
AES. Расшифровка C++
AES в C++ C++
Как реализовать AES на С++ C++
C++ AES библиотека
C++ Cryptopp шифрование AES ECB
AES - Текст при расшифровке не соответствует оригиналу C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
prostotype
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 1
17.07.2015, 08:25     Генерация сессионного ключа AES #2
возможно, вот тут ошибка

Код
DWORD aes_keylen=0;
Yandex
Объявления
17.07.2015, 08:25     Генерация сессионного ключа AES
Ответ Создать тему
Опции темы

Текущее время: 08:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru