admin 管理员组

文章数量: 1184232


2024年2月28日发(作者:colspan在html中的全称)

BJCASecXCOM接口说明

BJCASecX客户端控件

BJCASecXCOM接口说明

(中国移动版)

北京数字证书认证中心

2008年9月

第 1 页 共 9 页

BJCASecXCOM接口说明

版权信息

BJCA 是北京数字证书认证中心有限公司的商标和缩写。

本文的版权属于北京数字证书认证中心有限公司,未经许可,任何个人和团体不得转载、粘贴或发布本文,也不得部分的转载、粘贴或发布本文,更不得更改本文的部分词汇进行转贴。

未经许可不得拷贝,影印。

Copyright @2007 北京数字证书认证中心有限公司

第 2 页 共 9 页

BJCASecXCOM接口说明

目 录

版权信息........................................................................................................................................... 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

第 3 页 共 9 页

BJCASecXCOM接口说明

1 技术指标

 支持的加密库:

1) Microsoft CSP

2) PKCS 11

3) 标准软算法实现

 支持的证书类型:

1) X509证书

2) PFX证书

3) P7证书链

 支持的标准格式:

1) RFC2459

2) PKCS#1、PKCS#5、PKCS#7、PKCS#10、PKCS#11、PKCS#12

2 接口说明

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 导出的证书内容

第 4 页 共 9 页

BJCASecXCOM接口说明

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 失败

第 5 页 共 9 页

BJCASecXCOM接口说明

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.6 PKCS#1公钥加密

原型: BSTR pubKeyEncrypt(BSTR Cert, BSTR inData)

功能: pkcs1公钥加密

参数: BSTR Cert 加密证书

BSTR inData 待加密的数据

返回: BSTR ret 密文(base64编码后的)

第 6 页 共 9 页

BJCASecXCOM接口说明

2.2.7 PKCS#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

#define CERT_SRC_UNIQUEID

#define CERT_SRC_FILE

#define CERT_SRC_CONTAINER_UCA

#define CERT_SRC_CONTAINER_SIGN

#define CERT_SRC_CONTAINER_ENC

#define CERT_SRC_CONTAINER_BOTH

#define CERT_SRC_PKCS12

#define CERT_DST_BASE64

#define CERT_DST_DERFILE

1

2

3

4

5

6

7

8

1

2

//证书来自Base64字符串

//证书来自唯一表示

//证书来自der文件

//证书来自UCA类型证书容器

//证书来自容器下签名证书

//证书来自容器下加密证书

//证书来自容器下签名加密证书

//证书来自PKCS12文件

//导出证书为Base64字符串

//导出证书为der文件

第 7 页 共 9 页

#define CERT_DST_P12

#define CERT_XML_SUBJECT

#define CERT_XML_UNIQUEID

#define CERT_XML_DEPT

#define CERT_XML_ISSUE

#define CERT_XML_STATE

#define CERT_XML_TRADETYPE

#define CERT_XML_PASSWORD

#define CERT_XML_DEVICETYPE

#define CERT_XML_CATYPE

#define CERT_XML_KEYTYPE

#define CERT_XML_SIGNSN

#define CERT_XML_EXCHSN

#define CERT_XML_DEVICENAME

#define CERT_XML_DEVICEPROVIDER

#define CERT_XML_DEVICEAFFIX

#define CERT_XML_SIGNPATH

#define CERT_XML_EXCHPATH

#define CERT_XML_SIGNPFXPATH

#define CERT_XML_EXCHPFXPATH

#define CERT_XML_CHAINPATH

#define CERT_XML_CRLPATH

#define CRYPT_CFGTYPE_UNSET

#define CRYPT_CFGTYPE_CSP

#define CRYPT_CFGTYPE_P11

#define CRYPT_CFGTYPE_P12

#define ENVELOP_ENC

#define ENVELOP_DEC

#define CRYPT_ALG_HASH

#define CRYPT_ALG_SYMM

#define CRYPT_ALG_MODE

///证书基本信息项 OID////////////////////////////////

#define CERT_OID_VERSION

#define CERT_OID_SN

#define CERT_OID_SIGNALG

#define CERT_OID_ISSUERNAME

#define CERT_OID_NOTBEFORE

#define CERT_OID_NOTAFTER

BJCASecXCOM接口说明

3 //到出证书为PKCS12文件

1 //从XML配置文件取用户名

2 //从XML配置文件取用户唯一表识

3 //从XML配置文件取用户所有者部门

4 //从XML配置文件取用户证书颁发者

5 //从XML配置文件取用户证书使用状态

6 //从XML配置文件取用户证书应用类型

7 //从XML配置文件取用户私钥保护口令

8 //从XML配置文件取用户证书介质类型

9 //从XML配置文件取用户证书CA类型

10 //从XML配置文件取用户证书密钥类型

11 //从XML配置文件取签名证书序列号

12 //从XML配置文件取加密证书序列号

13 //从XML配置文件取用户证书介质名称

14 //从XML配置文件取证书介质提供者

15 //从XML配置文件取证书介质附加库

16 //从XML配置文件取用户签名证书路径

17 //从XML配置文件取用户加密证书路径

18 //从XML配置文件取签名P12证书路径

19 //从XML配置文件取加密P12证书路径

20 //从XML配置文件取用户证书链路径

21 //从XML配置文件取CRL作废列表路径0 //用户应用类型未定义

1 //用户应用类型CSP

2 //用户应用类型P11

3 //用户应用类型软算法

1 //加密P7数字信封

0 //解密P7数字信封

1 //Hash标志位

2 //对称算法标志位

3 //对称算法模式

1 //证书版本号

2 //证书序列号

3 //证书签名算法

4 //证书颁发者

5 //证书生效日期

6 //证书过期日期

第 8 页 共 9 页

BJCASecXCOM接口说明

#define CERT_OID_PUBLICKEY 7 //证书公钥

#define CERT_OID_UNIQUEID 8 //证书唯一标识

////////////////////////////////////////////////////////////////////

//返回结果定义

enum RETURN_VALUES //返回结果定义

{

SECCOM_SUCCESS = 0, //成功

SECCOM_FAIL = -1, //失败

ERR_PARA = -1000, //参数错误

ERR_Init = -1001, //初始化错误

ERR_Final = -1002, //释放错误

ERR_OPENFILE = -1003, //打开文件错误

ERR_BASE64 = -1004, //BASE64编码错误

ERR_P7BPATH = -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";

第 9 页 共 9 页


本文标签: 证书 用户 配置文件 信息 类型