4) 公钥加密SOF_PubKeyEncrypt
原型: BSTR SOF_PubKeyEncrypt(BSTR Cert, BSTR InData) ; 描述: 使用证书对数据加密。(PKCS#1格式) 参数: BSTR Cert[in]
BSTR InData[in]
返回值: BSTR rv
空值
证书 待加密的数据 成功加密后的密文 失败
备注: 因为是PKCS#1格式,故加密的数据长度要小于证书的位数。比如1024
位的证书,InData长度必须小于128
5) 私钥解密SOF_PriKeyDecrypt
原型: BSTR SOF_PriKeyDecrypt(BSTR CertID, BSTR InData) ; 描述: 私钥解密(PKCS#1格式) 参数: BSTR CertID[in]
BSTR InData[in]
返回值: BSTR rv
空值
6) 获得证书列表SOF_GetUserList
原型: BSTR SOF_GetUserList(); 描述: 取得当前已安装证书的用户列表 参数: 无
返回值: BSTR ret 用户列表字符串
数据格式:(用户1||标识1&&&用户2||标识2&&&…)
7) 校验证书口令 SOF_Login
证书ID 待解密的数据 成功解密后的明文 失败
31
原型: BOOL SOF_Login(BSTR CertID, BSTR PassWd,short nRetryCount) 描述: 校验证书口令 参数: BSTR CertID [in]
BSTR PassWd [in] Short RetryCount[out]
返回值: 成功 TRUE,失败 FALSE 8) 导出用户签名证书SOF_ExportUserCert
原型: BSTR SOF_ExportUserCert(BSTR CertID);
描述: 根据证书实体唯一标识,获取Base64编码的证书字符串。 参数: BSTR CertID [in] 返回值: BSTR rv
空
输入参数,证书实体唯一标识 证书字符串 失败空值
输入参数,证书实体唯一标识 输入参数,口令 剩余口令重试次数
备注: 如果是双证书,导出的是签名证书。
9) 验证签名SOF_VerifySignedData
原型: BOOL SOF_VerifySignedData(BSTR Cert, BSTR InData, short
InDataLen, BSTR SignValue) ;
描述: 验证数字签名 参数: BSTR sCert[in]
BSTR sInData[in] Short InDataLen[in] BSTR sSignValue[in]
返回值: TRUE
FALSE
10) 获得证书扩展信息SOF_GetCertInfoByOid
32
签名者证书,BASE64编码 签名原文 签名原文长度 签名值,BASE64编码 成功 失败
原型: BSTR SOF_GetCertInfoByOid(BSTR Base64EncodeCert, BSTR oid); 描述: 根据OID获取证书私有扩展项信息 参数: BSTR Base64EncodeCert
BSTR oid
返回值: BSTR ret
空值 备注: 错误代码:
SOR_NULLPOINTER:某一个参数为空指针。 SOR_CERTENCODE:证书编码格式错误。
Base64编码的证书
私有扩展对象ID,如“1.2.156.xxx” 证书OID对应的值 出错
4.9存储分配
//根据需要,说明本程序的存储分配。
4.10注释设计
//说明准备在本程序中安排的注释,如: a) 加在模块首部的注释; b) 加在各分枝点处的注释;
c) 对各变量的功能、范围、缺省条件等所加的注释; d) 对使用的逻辑所加的注释等等。
4.11限制条件
33
4.12测试计划
//说明对本程序进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件驱动程序及桩模块等的规定。
在医院内网、电脑安装了相关软件的环境下,插入测试UsbKey,进行CA登录测试。
4.13尚未解决的问题
//说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。
5电子签名设计说明
5.1程序描述
应用系统中存储,信息加密电子签名的接口封装。
5.2功能
数据 签名 签名数据
34
5.3性能
数据签名时间不多于1秒
5.4输人项
交易数据
5.5输出项
签名后数据
5.6算法
//细说明本程序所选用的算法,具体的计算公式和计算步骤。
35