• XSS.stack #1 – первый литературный журнал от юзеров форума

Не работает BCrypt

mov_ax

HDD-drive
Пользователь
Регистрация
17.12.2021
Сообщения
30
Реакции
3
Здравствуйте, господа. Использую в своём коде CryptoAPI Next Generation(CNG) для RSA шифрования текста. На этапе инициализации алгоритма и создания пары открытого/закрытого ключей всё работает и никаких ошибок нету, но после того как я хочу зашифровать какой-то текст через функцию BCryptEncrypt, эта функция просто не работает и возращает эта функция STATUS_INVALID_PARAMETER. В первом вызове BCryptEncrypt() я сначала получаю размер будущего зашифрованого текста в переменную encryptedBufferSize, но ничего не работает.
Помогите пожалуйста, что делать?
C:
BCRYPT_ALG_HANDLE hRsaAlg = NULL;
    BCRYPT_KEY_HANDLE hKey = NULL;

    if (BCryptOpenAlgorithmProvider(&hRsaAlg, BCRYPT_RSA_ALGORITHM, NULL, 0) != STATUS_SUCCESS) {
        printA("[-] BCryptOpenAlgorithmProvider");
    }

    if (BCryptGenerateKeyPair(hRsaAlg, &hKey, 2048, 0) != STATUS_SUCCESS) {
        printA("[-] BCryptGenerateKeyPair");
    }

    CHAR text[] = "Password";
    DWORD encryptedBufferSize = 0;

    if (BCryptEncrypt(hKey, text, lstrlenA(text), NULL, NULL, 0, NULL, 0, &encryptedBufferSize, 0) != STATUS_SUCCESS) {
        DWORD err = GetLastError();
        char res[1024];
        wsprintfA(res, "%d", err);
        printA(res);
    }

   

    BCryptDestroyKey(hKey);
    BCryptCloseAlgorithmProvider(hRsaAlg, 0);
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
эта функция просто не работает и что самое ужасное, так это то что GetLastError() после этой функции возращает 0, хотя на самом деле функция вообще никак не отработала.
С чего ты взял, что эта функция прописывает GetLastError? Я же тебе писал, что она сама возвращает код ошибки, и что для каждой функции то, куда и как она возвращает код ошибки можно найти на MSDN.

Пока вангую, что отваливается из-за отсутствия паддинга.
 
С чего ты взял, что эта функция прописывает GetLastError? Я же тебе писал, что она сама возвращает код ошибки, и что для каждой функции то, куда и как она возвращает код ошибки можно найти на MSDN.

Пока вангую, что отваливается из-за отсутствия паддинга.
Забыл про эту очевидную вещь. Она STATUS_INVALID_PARAMETER возращает. Странно. Вроде все параметры правильно передаю ей. Что за фегня.
 
С чего ты взял, что эта функция прописывает GetLastError? Я же тебе писал, что она сама возвращает код ошибки, и что для каждой функции то, куда и как она возвращает код ошибки можно найти на MSDN.

Пока вангую, что отваливается из-за отсутствия паддинга.
Да!! Точно!! Нужно было просто паддинг вставить. Спасибо!
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх