Как использовать CryptoAPI для шифрования ключа AES с открытым ключом RSA - PullRequest
0 голосов
/ 11 июля 2019

Я использую функцию Windows 100 CryptoAPI CryptGenKey для генерации пары ключей RSA.Затем у меня есть ключ AES, сгенерированный и экспортированный как шестнадцатеричный, так что я могу зашифровать его с помощью открытого ключа RSA.Вот код:

// <includes>
// handle to CSP

// declaring keys
HCRYPTKEY testKey = NULL;
HCRYPTKEY hRSAKey = NULL;

// generating RSA key pair
CryptGenKey(hCryptProv, CALG_RSA_KEYX, CRYPT_EXPORTABLE, &hRSAKey); 

// generating AES key
testKey = CryptGenKey(hCryptProv,CALG_AES_256,1,&hKey);

// exporting AES key to hex string
std::string hexAES = exportKeyAsHex(testKey);

// attempting encryption of AES key with RSA
// ...this is where I need help...

DWORD pbDataLen;
const size_t chunk_size = 256;
BOOL isFinal = FALSE;
CryptEncrypt(hRSAKey, NULL, isFinal, 0, hexAES, pbDataLen, chunk_size);

Я получаю следующую ошибку: no suitable conversion from string to BYTE для переменной hexAES в последней строке.Так что я знаю, что это не тот тип данных.Как исправить этот код для успешного шифрования ключа AES-256 с помощью созданного открытого ключа RSA?

...