如何使用CryptoAPI用RSA公钥加密AES密钥

时间:2019-07-11 18:45:58

标签: c++ winapi rsa cryptoapi

我正在使用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密钥?

0 个答案:

没有答案