我正在使用Windows CryptoAPI的// <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);
函数来生成RSA密钥对。然后,我生成了一个AES密钥并将其导出为十六进制,以便可以使用RSA公钥对其进行加密。这是代码:
no suitable conversion from string to BYTE
我得到以下错误:最后一行中的变量hexAES
的{{1}}。所以我知道这不是正确的数据类型。如何修复此代码,以使用生成的RSA公钥成功加密AES-256密钥?