Cryptography 带WinCrypt&;的硬编码AES-256键;密码输入键
我需要一个Win32应用程序加载一个硬编码的AES-256密钥,最好使用WinCrypt.h方法。我的密钥是未签名字符[32],但我找不到要传递给CryptImportKey的密钥blob的正确格式。一切似乎都给了我无效的参数错误。有没有办法做到这一点Cryptography 带WinCrypt&;的硬编码AES-256键;密码输入键,cryptography,aes,cryptoapi,Cryptography,Aes,Cryptoapi,我需要一个Win32应用程序加载一个硬编码的AES-256密钥,最好使用WinCrypt.h方法。我的密钥是未签名字符[32],但我找不到要传递给CryptImportKey的密钥blob的正确格式。一切似乎都给了我无效的参数错误。有没有办法做到这一点 (同样重要的是如何在WinCrypt中设置IV。我根本不知道如何设置)解决了这个问题。我使用了错误的B类型,使用256作为键大小,而不是32 BYTE myPrivateKey[] = {1,2,3,4,5,6,7,8,9,10,
(同样重要的是如何在WinCrypt中设置IV。我根本不知道如何设置)解决了这个问题。我使用了错误的B类型,使用256作为键大小,而不是32
BYTE myPrivateKey[] =
{1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32};
BYTE myIV[] =
{1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16};
struct aes256keyBlob
{
BLOBHEADER hdr;
DWORD keySize;
BYTE bytes[32];
} blob;
blob.hdr.bType = PLAINTEXTKEYBLOB;
blob.hdr.bVersion = CUR_BLOB_VERSION;
blob.hdr.reserved = 0;
blob.hdr.aiKeyAlg = CALG_AES_256;
blob.keySize = 32;
memcpy(blob.bytes, myPrivateKey, 32);
HCRYPTKEY hKey;
if (CryptImportKey(hCryptProv, (BYTE*)&blob, sizeof(aes256keyBlob), NULL, 0, &hKey))
{
if(CryptSetKeyParam(hKey, KP_IV, myIV, 0))
{
//do decryption here
}
else{/*error*/}
CryptDestroyKey(hKey);
}
else{/*error*/}