是否有一种在CryptoApi中包装或打开密钥的方法?我尝试用适当的函数设置键参数CRYPT_IMPORT_KEY和CRYPT_EXPORT_KEY,但是我得到了"params未定义“的错误。
其他细节:程序是用C++编写的,操作系统: Win7,IDE: Dev- C++,主要标题是windows.h和wincrypt.h。
编译时,会得到错误“CRYPT_EXPORT_KEY (或CRYPT_IMPORT_KEY)未声明”。
我写的代码:
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的标志!
发布于 2013-07-02 18:50:11
检查docs - CryptSetKeyParam和CryptGetKeyParam
当您使用KP_PERMISSIONS时,有效的标志集是
CRYPT_ARCHIVE
CRYPT_DECRYPT
CRYPT_ENCRYPT
CRYPT_EXPORT
CRYPT_EXPORT_KEY
CRYPT_IMPORT_KEY
CRYPT_MAC
CRYPT_READ
CRYPT_WRITECRYPT_EXPORTABLE不在此列表中。
如果您检查CryptGenKey的文档,则CRYPT_EXPORTABLE是您在创建密钥时使用的标志,以便以后可以导出它。这不是CryptSetKeyParam所必需的。
https://stackoverflow.com/questions/17388927
复制相似问题