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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сумма чисел в *.txt файле! http://www.cyberforum.ru/cpp-beginners/thread1157169.html
Есть текстовый файл f.txt в нем записаны числа, вот по такой маске "*123*31*123*", программа должна считывать строку и числа между "*" складывать, результат выводить на экран. Проблема заключается в том что выводится всегда 0. Прошу подсказки! int main() { double sum=0, b; char k; fstream datei; //объявление переменной типа fstream datei.open("f.txt",ios::in); ...
C++ Очень нужна работающая программа по "Длинной арифметике вычитания" Очень нужна работающая программа по "Длинной арифметике вычитания" http://www.cyberforum.ru/cpp-beginners/thread1157168.html
C++ Поменять местами наибольший и наименьший элементы
В общем задание было такое: (Тема одномерные массивы) Даны действительные числа а1, а2,..., аn. Поменять местами наибольший и наименьший элементы. #include <iostream> using namespace std; int main(){ setlocale(LC_ALL,"rus"); int mas; cout<<"Введите числа"<<endl; for(int i=0; i<10; i++){ cin>>mas;
C++ Удалить из массива все нечетные элементы
Динамическая память. Одномерный массив. Дан массив целых чисел. Удалите из массива все нечетные элементы.
C++ Создание и запись в типизированный файл http://www.cyberforum.ru/cpp-beginners/thread1157146.html
Есть 7 окон Edit (ФИО, отдел, должность, эл. почта и т.д.), нужно содержимое этих окон записать в файл, и есть ComboBox, который должен по нажатию отображать только фамилии, записанные в этом файле. Помогите пожалуйста!
C++ Нарушение прав доступа при записи по адресу Нужно просуммировать двухмерный динамический массив. Если я ввожу a1 >= b1 то программа работает, а если ввожу a1< b1 например 1,3 соответственно, то выскакивает вот такая ошибка: Первый этап обработки исключения по адресу 0x0F9635BA (msvcp120d.dll) в Задачи 25.04.2014_1.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCDCDCDCD. Необработанное исключение по адресу 0x0F9635BA... подробнее

Показать сообщение отдельно
hknower
0 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 55

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

25.04.2014, 15:37. Просмотров 1107. Ответов 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
Мне всего лишь нужен сгенеренный ключ
Что я делаю не так?
Спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru