密钥的产生和交换函数 |
CPDeriveKey |
CPDestroyKey |
CPDuplicateKey |
CPExportKey |
CPGenKey |
CPGenRandom |
CPGetKeyParam |
CPGetUserKey |
CPImportKey |
CPSetKeyParam |
1.2.1 CPDeriveKey
功能:
创建一个密码派生的密钥。
参数:
【in】hProv : CSP句柄
【in】Algid :算法标识
Value |
Meaning |
DES |
支持 |
3DES |
支持 |
RC2 |
支持 |
RC4 |
支持 |
SCB2 |
支持 |
SSF33 |
支持 |
【in】hBaseData :哈希对象数据
【in】dwFlags :生成标记
Value |
Meaning |
CRYPT_EXPORTABLE |
密钥可以导出的标 |
CRYPT_CREATE_SALT |
不支持 |
CRYPT_NO_SALT |
不支持 |
CRYPT_USER_PROTECTED |
不支持 |
CRYPT_UPDATE_KEY |
不支持 |
CRYPT_SERVER |
不支持 |
【out】phKey :密钥对象句柄
返回值:
If the function succeeds, the functionreturns TRUE.
错误情况下设置错误码如下
Value |
Description |
NTE_BAD_ALGID |
指定的算法不支持 |
NTE_BAD_FLAGS |
参数无效 |
NTE_BAD_HASH |
HASH句柄无效 |
NTE_BAD_HASH_STATE |
状态不对,当HASH为完成状态情况下,再对数据进行运算时会失败。 |
NTE_FAIL |
函数执行失败 |
NTE_BAD_UID |
无效的CSP句柄 |
NTE_SILENT_CONTEXT |
提供者无法执行的行动,因为上下文是无效的。 |
1.2.2 CPDestroyKey
功能:
释放密钥句柄
参数:
【in】hProv :CSP句柄
【in】hKey:要释放的密钥句柄。
返回值:
返回值 |
描述 |
NTE_BAD_KEY |
无效的密钥句柄 |
NTE_BAD_UID |
无效的CSP句柄 |
备注:
如果是用Cryptimportkey函数导入的会话密钥或是公钥,释放句柄时密钥所用的内存也将被覆盖。
对于其他句柄,如果是公钥/密钥对,由