Я использую функцию 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?