Здравствуйте, господа. Использую в своём коде 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);
Последнее редактирование: