客户端控件BJCASecCOM接口说明
- 格式:doc
- 大小:94.50 KB
- 文档页数:9
BJCASecX客户端控件BJCASecXCOM接口说明(中国移动版)北京数字证书认证中心2008年9月版权信息BJCA 是北京数字证书认证中心有限公司的商标和缩写。
本文的版权属于北京数字证书认证中心有限公司,未经许可,任何个人和团体不得转载、粘贴或发布本文,也不得部分的转载、粘贴或发布本文,更不得更改本文的部分词汇进行转贴。
未经许可不得拷贝,影印。
Copyright @2007 北京数字证书认证中心有限公司目录版权信息 (2)目录 (3)1 技术指标 (4)2 接口说明 (4)2.1 证书接口 (4)2.1.1 导入证书 (4)2.1.2 导出证书 (4)2.1.3 检查证书剩余有效期 (5)2.1.4 根据证书OID获取证书基本信息 (5)2.1.5 根据证书OID获取证书扩展信息 (5)2.2 密码服务接口 (5)2.2.1 设置用户个人信息 (5)2.2.2 数字签名 (6)2.2.3 验证数字签名 (6)2.2.4 对称算法加密 (6)2.2.5 对称算法解密 (6)2.2.6 PKCS#1公钥加密 (6)2.2.7 PKCS#1私钥解密priKeyDecrypt (7)2.3 工具接口 (7)2.3.1 获取已安装证书列表 (7)2.3.2 根据用户容器名取得用户环境信息 (7)3 错误代码与宏定义 (7)1技术指标支持的加密库:1)Microsoft CSP2)PKCS 113)标准软算法实现支持的证书类型:1)X509证书2)PFX证书3)P7证书链支持的标准格式:1)RFC24592)PKCS#1、PKCS#5、PKCS#7、PKCS#10、PKCS#11、PKCS#122接口说明2.1 证书接口2.1.1导入证书原型:importCert(BSTR sCertSrc, short SrcType, BSTR sExt)功能:导入证书到组件参数:BSTR sCertSrc 证书来源(证书编码字符串、证书路径、智能卡)short SrcType 证书来源类型(详细见宏定义)BSTR(可选)sExt 证书来源附加信息P12证书口令或智能卡CSP名返回:SECCOM_SUCCESS 成功SECCOM_FAIL 失败2.1.2导出证书原型:BSTR exportCert(short DstType, BSTR sCertPath)功能:从组件中导出证书参数:short DstType 证书目标类型(证书编码字符串、DER证书文件)BSTR(可选)sCertPath DER证书的路径返回:BSTR ret 导出的证书内容2.1.3检查证书剩余有效期原型:short checkValidaty(BSTR sDate)功能:检查证书剩余有效期参数:BSTR(可选)sDate 需检查的目标日期,格式YYYY/MM/DD,默认为当前日期返回:short ret 剩余天数2.1.4根据证书OID获取证书基本信息原型:BSTR getBasicCertInfoByOID(short OID)功能:根据证书OID编号取得证书基本信息参数:short OID 证书OID编号(详见宏定义)返回:BSTR ret OID对应的值2.1.5根据证书OID获取证书扩展信息原型:BSTR getExtCertInfoByOID(BSTR sOID)功能:根据证书OID编号取得证书扩展信息参数:BSTR sOID 证书OID字符编码返回:BSTR ret OID对应的值2.2 密码服务接口2.2.1设置用户个人信息原型:setUserCfg(short CfgFlg,BSTR sCfgValue,BSTR sExt1CfgValue,BSTR sExt2CfgValue)功能:设置用户个人信息参数:short CfgFlag 设置用户使用类型(1:CSP,2:P11,3:软算法,0:未设置状态)BSTR sCfgValue 用户信息参数一(CSP:CSP名称,P11:P11库名,软算法:P12文件路径)BSTR sExt1CfgValue 用户信息参数二(CSP:CSP扩展库名,软算法:P12文件加密口令)BSTR sExt2CfgValue 用户信息参数三(CSP:智能卡Pin口令)返回:ECCOM_SUCCESS 成功SECCOM_FAIL 失败2.2.2数字签名原型:BSTR signedData(BSTR sInData, BSTR sContainnerName)功能:数字签名参数:BSTR sInData 签名原文BSTR(可选)sContainnerName CSP容器名返回:BSTR ret 签名结果2.2.3验证数字签名原型:verifySignedDat(BSTR sInData, BSTR sCert, BSTR sOriData)功能:验证数字签名参数:BSTR sInData 签名结果BSTR sCert 签名证书BSTR sOriData 签名原文返回:ECCOM_SUCCESS 成功SECCOM_FAIL 失败2.2.4对称算法加密原型:BSTR encryptData(BSTR skey, BSTR inData)功能:对称算法加密参数:BSTR skey 对称算法密钥BSTR inData 待加密的数据返回:BSTR ret 密文(Base64编码后的)2.2.5对称算法解密原型:BSTR decryptData(BSTR skey, BSTR inData)功能:对称算法解密参数:BSTR skey 对称算法密钥BSTR inData 待解密的数据返回:BSTR ret 明文2.2.6PKCS#1公钥加密原型:BSTR pubKeyEncrypt(BSTR Cert, BSTR inData)功能:pkcs1公钥加密参数:BSTR Cert 加密证书BSTR inData 待加密的数据返回:BSTR ret 密文(base64编码后的)2.2.7PKCS#1私钥解密priKeyDecrypt原型:BSTR priKeyDecrypt(BSTR sContainerName, BSTR inData)功能:pkcs1私钥解密参数:BSTR sContainerName 私钥容器BSTR inData 待解密的数据返回:BSTR ret 明文2.3 工具接口2.3.1获取已安装证书列表原型:BSTR getUserList()功能:取得当前已安装证书的用户列表参数:无返回:BSTR ret 用户列表字符串,格式:(用户名1||容器名1&&&用户名2||容器名2&&&…)2.3.2根据用户容器名取得用户环境信息原型:BSTR getUserInfoByContainer(BSTR sContainerName, short TypeID)功能:根据用户容器名取得用户环境信息参数:BSTR sContainerName 容器名、介质类型、CA类型short TypeID 用户环境代码(详见宏定义)返回:BSTR ret 返回代码标识的数据3错误代码与宏定义#define CERT_SRC_BASE64 1 //证书来自Base64字符串#define CERT_SRC_UNIQUEID 2 //证书来自唯一表示#define CERT_SRC_FILE 3 //证书来自der文件#define CERT_SRC_CONTAINER_UCA 4 //证书来自UCA类型证书容器#define CERT_SRC_CONTAINER_SIGN 5 //证书来自容器下签名证书#define CERT_SRC_CONTAINER_ENC 6 //证书来自容器下加密证书#define CERT_SRC_CONTAINER_BOTH 7 //证书来自容器下签名加密证书#define CERT_SRC_PKCS12 8 //证书来自PKCS12文件#define CERT_DST_BASE64 1 //导出证书为Base64字符串#define CERT_DST_DERFILE 2 //导出证书为der文件BJCASecXCOM接口说明#define CERT_DST_P12 3 //到出证书为PKCS12文件#define CERT_XML_SUBJECT 1 //从XML配置文件取用户名#define CERT_XML_UNIQUEID 2 //从XML配置文件取用户唯一表识#define CERT_XML_DEPT 3 //从XML配置文件取用户所有者部门#define CERT_XML_ISSUE 4 //从XML配置文件取用户证书颁发者#define CERT_XML_STATE 5 //从XML配置文件取用户证书使用状态#define CERT_XML_TRADETYPE 6 //从XML配置文件取用户证书应用类型#define CERT_XML_PASSWORD 7 //从XML配置文件取用户私钥保护口令#define CERT_XML_DEVICETYPE 8 //从XML配置文件取用户证书介质类型#define CERT_XML_CATYPE 9 //从XML配置文件取用户证书CA类型#define CERT_XML_KEYTYPE 10 //从XML配置文件取用户证书密钥类型#define CERT_XML_SIGNSN 11 //从XML配置文件取签名证书序列号#define CERT_XML_EXCHSN 12 //从XML配置文件取加密证书序列号#define CERT_XML_DEVICENAME 13 //从XML配置文件取用户证书介质名称#define CERT_XML_DEVICEPROVIDER 14 //从XML配置文件取证书介质提供者#define CERT_XML_DEVICEAFFIX 15 //从XML配置文件取证书介质附加库#define CERT_XML_SIGNPATH 16 //从XML配置文件取用户签名证书路径#define CERT_XML_EXCHPATH 17 //从XML配置文件取用户加密证书路径#define CERT_XML_SIGNPFXPATH 18 //从XML配置文件取签名P12证书路径#define CERT_XML_EXCHPFXPA TH 19 //从XML配置文件取加密P12证书路径#define CERT_XML_CHAINPATH 20 //从XML配置文件取用户证书链路径#define CERT_XML_CRLPATH 21 //从XML配置文件取CRL作废列表路径#define CRYPT_CFGTYPE_UNSET 0 //用户应用类型未定义#define CRYPT_CFGTYPE_CSP 1 //用户应用类型CSP#define CRYPT_CFGTYPE_P11 2 //用户应用类型P11#define CRYPT_CFGTYPE_P12 3 //用户应用类型软算法#define ENVELOP_ENC 1 //加密P7数字信封#define ENVELOP_DEC 0 //解密P7数字信封#define CRYPT_ALG_HASH 1 //Hash标志位#define CRYPT_ALG_SYMM 2 //对称算法标志位#define CRYPT_ALG_MODE 3 //对称算法模式///证书基本信息项OID////////////////////////////////#define CERT_OID_VERSION 1 //证书版本号#define CERT_OID_SN 2 //证书序列号#define CERT_OID_SIGNALG 3 //证书签名算法#define CERT_OID_ISSUERNAME 4 //证书颁发者#define CERT_OID_NOTBEFORE 5 //证书生效日期#define CERT_OID_NOTAFTER 6 //证书过期日期BJCASecXCOM接口说明#define CERT_OID_PUBLICKEY 7 //证书公钥#define CERT_OID_UNIQUEID 8 //证书唯一标识//////////////////////////////////////////////////////////////////////返回结果定义enum RETURN_V ALUES //返回结果定义{SECCOM_SUCCESS = 0, //成功SECCOM_FAIL = -1, //失败ERR_PARA = -1000, //参数错误ERR_Init = -1001, //初始化错误ERR_Final = -1002, //释放错误ERR_OPENFILE = -1003, //打开文件错误ERR_BASE64 = -1004, //BASE64编码错误ERR_P7BPA TH = -1005, //p7证书链错误ERR_CRL = -1006, //CRL错误ERR_UNSET = -1007, //用户未设置ERR_VERICERT = -1008, //验证用户证书错误ERR_SIGNP7 = -1009, //P7签名错误};//错误信息const static char* ERR_sOK = "S_OK";const static char* ERR_sCertNull = "Cert_No_Load";const static char* ERR_sPara = "Parameter_Error";const static char* ERR_sOpenFile = "OpenFile_Error";const static char* ERR_sInit = "Initialize_Error";const static char* ERR_sFinal = "Finalize_Error";const static char* ERR_sGetCert = "GetCert_Error";const static char* ERR_sUnSet = "User_UnSet";const static char* ERR_sSign = "SignData_Error";const static char* ERR_sVeriSign = "Verify_SignedData_Error";const static char* ERR_sEncrypt = "Encrypt_Error";const static char* ERR_sDecrypt = "Decrypt_Error";。