📄 bjcakey.h
字号:
/*
函数功能: 导出公钥
参数说明: hKey: 操作句柄
pbContainerName: 容器名称
ulContainerNameLen: 容器名称长度
ulKeyType: 密钥的类型
pbPubKey: der编码的公钥
ulPubKeyLen: der编码的公钥长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI ImportCert(IN HANDLE hKey, //需要User Login
IN const unsigned char* pbContainerName,
IN unsigned long ulContainerNameLen,
IN unsigned long ulKeyType,
IN unsigned char* pbCert, //一定要为der编码的证书
IN unsigned long ulCertLen);
/*
函数功能: 导入证书DER
参数说明: hKey: 操作句柄
pbContainerName: 容器名称
ulContainerNameLen: 容器名称长度
ulKeyType: 密钥的类型
pbCert: der编码的证书
ulCertLen: der编码的证书长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI ImportPubKey(IN HANDLE hKey, //需要User Login
IN const unsigned char* pbContainerName,
IN unsigned long ulContainerNameLen,
IN unsigned long ulKeyType,
IN unsigned char* pbPubKey, //一定要为der编码的公钥
IN unsigned long ulPubKeyLen );
/*
函数功能: 导入公钥DER
参数说明: hKey: 操作句柄
pbContainerName: 容器名称
ulContainerNameLen: 容器名称长度
ulKeyType: 密钥的类型
pbPubKey: der编码的公钥
ulPubKeyLen: der编码的公钥长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI ImportPriKey(IN HANDLE hKey,
IN const unsigned char* pbContainerName,
IN unsigned long ulContainerNameLen,
IN unsigned long ulKeyType,
IN unsigned char* pbPriKey,
IN unsigned long ulPriKeyLen);
/*
函数功能: 导入私钥DER
参数说明: hKey: 操作句柄
pbContainerName: 容器名称
ulContainerNameLen: 容器名称长度
ulKeyType: 密钥的类型
pbPriKey: der编码的私钥
ulPriKeyLen: der编码的私钥长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI ImportRSAKey(IN HANDLE hKey,
IN const unsigned char* pbContainerName,
IN unsigned long ulContainerNameLen,
IN unsigned long ulKeyType,
IN unsigned char* pbPubKey,
IN unsigned long ulPubKeyLen,
IN unsigned char* pbPriKey,
IN unsigned long ulPriKeyLen);
/*
函数功能: 导入DER编码的RSA密钥对
参数说明: hKey: 操作句柄
pbContainerName: 容器名称
ulContainerNameLen: 容器名称长度
ulKeyType: 密钥的类型
pbPubKey: der编码的公钥
ulPubKeyLen: der编码的公钥长度
pbPriKey: der编码的私钥
ulPriKeyLen: der编码的私钥长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI DecryptData(IN HANDLE hKey,
IN const unsigned char* pbContainerName,
IN unsigned long ulContainerNameLen,
IN unsigned long ulKeyType,
IN const unsigned char* pbCipherData,
IN unsigned long ulCipherDataLen,
OUT unsigned char* pbPlainData,
OUT unsigned long* ulPlainDataLen);
/*
函数功能: 解密
参数说明: hKey: 操作句柄
pbContainerName: 容器名称
ulContainerNameLen: 容器名称长度
ulKeyType: 密钥的类型
pbCipherData: 输入数据
ulCipherDataLen: 输入数据长度
pbPlainData: 输出数据
ulPlainDataLen: 输出数据长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI EncryptData(IN HANDLE hKey, //需要User Login
IN const unsigned char* pbContainerName,
IN unsigned long ulContainerNameLen,
IN unsigned long ulKeyType,
IN const unsigned char* pbPlainData,
IN unsigned long ulPlainDataLen,
OUT unsigned char* pbCipherData, //长度一定要足够
OUT unsigned long* ulCipherDataLen);
/*
函数功能: 加密
参数说明: hKey: 操作句柄
pbContainerName: 容器名称
ulContainerNameLen: 容器名称长度
ulKeyType: 密钥的类型
pbCipherData: 输入数据
ulCipherDataLen: 输入数据长度
pbPlainData: 输出数据
ulPlainDataLen: 输出数据长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
//------------CAOWEI 11.22----------------------------------------------------
DWORD WINAPI ImportSymKey(IN HANDLE hKey, //需要User Login
IN unsigned long ulKeyType,
IN unsigned char* pbKey,
IN unsigned long ulKeyLen);
/*
函数功能: 导入对称密钥
参数说明: hKey: 操作句柄
ulKeyType: 密钥的类型, //TYPE_SYMKEY_SSF33
pbKey: 密钥
ulKeyLen: 密钥长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI SymEncryptData(IN HANDLE hKey, //需要User Login
IN unsigned char* pbPlainData,
IN unsigned long ulPlainDataLen,
OUT unsigned char* pbCipherData, //长度一定要足够
OUT unsigned long* ulCipherDataLen);
/*
函数功能: 对称密钥加密
参数说明: hKey: 操作句柄
pbCipherData: 输入数据
ulCipherDataLen: 输入数据长度
pbPlainData: 输出数据
ulPlainDataLen: 输出数据长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI SymDecryptData(IN HANDLE hKey,
IN unsigned char* pbCipherData,
IN unsigned long ulCipherDataLen,
OUT unsigned char* pbPlainData,
OUT unsigned long* ulPlainDataLen);
/*
函数功能: 解密
参数说明: hKey: 操作句柄
pbCipherData: 输入数据
ulCipherDataLen: 输入数据长度
pbPlainData: 输出数据
ulPlainDataLen: 输出数据长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
//---------------------------------------------------------------------------------------
DWORD WINAPI GetBjcaKeyParam(IN HANDLE hEkey,
IN unsigned long dwParam,
OUT unsigned char *pbData,
IN OUT unsigned long *pdwDataLen,
IN unsigned long dwFlags);
/*
函数功能: 取得ekey参数
参数说明: hKey: 操作句柄
dwParam: 获得信息类型,具体见ekey信息宏定义
pbData: 输出数据
pdwDataLen: 输出数据长度
dwFlags: 取值0,保留字节
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI BjcaKeyBlank(IN HANDLE hEkey);
/*
函数功能: 清空EKEY
参数说明: hKey: 操作句柄
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI OpenSpecCard(IN OUT HANDLE* hKey, IN unsigned char* Device_Label);
/*
函数功能: 根据卷标打开句柄
参数说明: hKey: 返回操作句柄
Device_Label:卷标
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI BjcaKeyCreateFile(IN HANDLE hEkey,
IN unsigned char *FileName,
IN unsigned long FileNameLen,
IN unsigned long MaxFileLen,
IN unsigned long Flag );
/*
函数功能: 在智能卡内写数据
参数说明: hKey: 操作句柄
*FileName 私有文件区名称
FileNameLen 文件名称长度
MaxFileLen 最大文件长度
Flag 数据长度 定义该文件属性 (见用户文件宏)
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI BjcaKeyWriteData(IN HANDLE hEkey,
IN unsigned char *FileName,
IN unsigned long FileNameLen,
IN unsigned char *pbData,
IN unsigned long pbDataLen);
/*
函数功能: 在智能卡内写数据
参数说明: hKey: 操作句柄
*FileName 私有文件区名称
FileNameLen 文件名称长度
*pbData 数据内容
pbDataLen 数据长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
//读数据
DWORD WINAPI BjcaKeyReadData(IN HANDLE hEkey,
IN unsigned char *FileName,
IN unsigned long FileNameLen,
OUT unsigned char *pbData,
OUT unsigned long *pbDataLen);
/*
函数功能: 在智能卡内读数据
参数说明: hKey: 操作句柄
*FileName 私有文件区名称
FileNameLen 文件名称长度
*pbData 数据内容
*pbDataLen 数据长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI BjcaKeyDelFile(IN HANDLE hEkey,
IN unsigned char *FileName,
IN unsigned long FileNameLen);
/*
函数功能: 在智能卡删除指定数据
参数说明: hKey: 操作句柄
*FileName 私有文件区名称
FileNameLen 文件名称长度
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
DWORD WINAPI BjcaKeyListFile(IN HANDLE hEkey,
OUT FILEINFO *pbFileInfo,
OUT DWORD *pdwFileNum);
/*
函数功能: 列举用户文件
参数说明: hEkey: 操作句柄
*FileName 返回文件个数
FileNameLen 返回文件结构
返回值: USBKEY_SUCCESS:成功,其他见错误代码
*/
#ifdef __cplusplus
}
#endif
#endif //__BJCAKEY_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -