0

有没有办法在CryptoApi中包装或解包密钥?我尝试设置关键参数CRYPT_IMPORT_KEYCRYPT_EXPORT_KEY使用正确的功能,但我收到错误“参数未定义”。

其他细节:程序是用C++编写的,操作系统:Win7,IDE:Dev-C++ 主要头文件是windows.hwincrypt.h.

当我编译时,我得到错误“CRYPT_EXPORT_KEY (or CRYPT_IMPORT_KEY) undeclared”。

我写的代码:

flags = CRYPT_ENCRYPT | CRYPT_EXPORTABLE | CRYPT_DECRYPT | CRYPT_EXPORT_KEY;
//set the above permission to the session key "dkey"    
CryptSetKeyParam(dKey,KP_PERMISSIONS,(BYTE*)&flags,0);

从评论更新:

它编译!但程序因错误而终止NTE_BAD_FLAGS。是因为CRYPT_EXPORT_KEY国旗!

4

1 回答 1

1

检查文档 - CryptSetKeyParamCryptGetKeyParam

当您使用KP_PERMISSIONS时,有效的标志集是

CRYPT_ARCHIVE
CRYPT_DECRYPT
CRYPT_ENCRYPT
CRYPT_EXPORT
CRYPT_EXPORT_KEY
CRYPT_IMPORT_KEY
CRYPT_MAC
CRYPT_READ
CRYPT_WRITE

CRYPT_EXPORTABLE不在此列表中。

如果您检查文档中的CryptGenKeyCRYPT_EXPORTABLE则它是您在创建密钥时使用的标志,以便以后可以将其导出。它不是必需的CryptSetKeyParam

于 2013-07-02T18:50:11.877 回答