卫生系统数字证书应用集成规范.doc_第1页
卫生系统数字证书应用集成规范.doc_第2页
卫生系统数字证书应用集成规范.doc_第3页
卫生系统数字证书应用集成规范.doc_第4页
卫生系统数字证书应用集成规范.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

卫生部办公厅2010年4月30日卫生系统电子认证服务体系系列规范-卫生系统数字证书应用集成规范(试行)目 录1 范围12 应用集成目标13 应用集成要求14 应用集成内容15 统一证书应用接口规范25.1 统一证书应用接口概述25.2 证书应用综合服务接口概述25.3 证书应用综合服务接口客户端接口函数定义45.4 证书应用综合服务接口服务器端COM组件函数定义95.5 证书应用综合服务接口服务器端JAVA组件函数定义175.6 证书应用综合服务接口相关代码表26附录A (资料性附录) 证书应用接口实施示例32附录B (资料性附录) 名词解释35II1 范围本规范依据卫生系统电子认证服务管理办法(试行),参照国家密码管理局“公钥密码基础设施应用技术体系”系列技术规范,结合卫生系统业务特点,提出卫生系统数字证书应用集成目标、集成要求、集成内容,定义统一的证书应用接口,并提供证书应用接口的典型部署示例、登录认证流程示例和签名验证流程示例。本规范用于指导并规范卫生信息系统证书应用集成实施工作,指导电子认证服务机构开发标准统一的证书应用接口,规范卫生信息系统实现基于数字证书的安全登录、数字签名和加密解密等安全功能。2 应用集成目标1) 在目前卫生信息系统普遍使用的用户名/口令认证方式基础上,引入数字证书技术,建立基于数字证书的身份认证机制,确保系统访问控制的高安全性和高可靠性;2) 对卫生信息系统的重要操作环节和重要数据实现基于数字证书的数字签名功能,保护数据的完整性,并为后期纠纷处理及责任认定提供合法电子证据;3) 对卫生信息系统的敏感信息实现基于数字证书的数据加密功能,确保敏感信息在传输和存储阶段的安全性。3 应用集成要求在证书应用集成时,应根据卫生系统各应用单位的业务特点和业务需求,确定需要改造的业务系统数量及名称、确定需要使用证书认证的用户及范围、确定需要加密签名的重要操作环节和数据,具体集成要求如下:1) 卫生信息系统在集成数字证书的安全功能时,首先应实现基于数字证书的身份认证功能;2) 对于具有操作行为责任认定、证据保存需求的卫生信息系统,应实现基于数字证书的数字签名的功能;3) 对于具有数据加密和解密需求的卫生信息系统,应实现基于数字证书的信息加密、信息解密功能;4) 对于具有可信时间需求的卫生信息系统,应集成时间戳功能;5) 对于具有信息共享需求的多个应用系统,可采用统一的身份认证模式,实现统一的身份认证管理、用户信息共享和单点登录等功能。4 应用集成内容卫生信息系统证书应用集成内容如下:1) 基于数字证书的身份认证证书登录认证过程中,应完成以下安全认证工作:a) 证书保护口令校验;b) 每次登录认证是基于随机数的签名和验证,防止重放攻击;c) 验证用户证书的信任链;d) 验证用户证书有效期;e) 基于最新的黑名单文件,验证用户证书是否被吊销;f) 验证证书信息是否在信息系统具有对应的用户账户及操作权限。在证书应用集成时,同时应实现用户安装和使用的方便性,如证书介质的即插即用功能。2) 数字签名和验证卫生信息系统中关键业务数据和操作的数字签名,应满足电子签名法以及其他相关政策法规规定的书面形式、原件形式及文件保存等要求,至少应包括数据原文、电子签名、可信时间等内容,并可在需要时查询、阅读、下载、验证,具备作为电子证据的真实性、可靠性和可验证性。数字签名可以和图章结合起来应用,实现电子签章功能,从而实现电子签名的可视化管理,方便用户查看、审阅和验证。3) 数据加密和解密数据加密时应采用对称算法和非对称算法相结合的方式,既保障加密机制的安全性、密钥分发的方便性,同时又提高了加解密操作的效率。根据业务需求,可使用单个数字证书加密,也可使用多个数字证书对数据共同加密,形成密文数据。密文数据应安全存储在数据库或磁盘上,待解密时间达到后方可解密。数据解密时,须使用数字证书对应的密码设备或证书介质解密。如果证书介质损坏或丢失,电子认证服务机构应在安全可控的前提下,为用户及时提供密钥恢复服务。4) 时间戳应用电子认证服务机构提供的时间戳服务应基于可靠的标准时间源,确保时间的准确和可信。5) 密码设备应用卫生信息系统在使用数字证书安全功能时,应基于密码设备提供的密码服务。密码设备包括客户端用户使用的证书介质和服务器端使用的密码设备。客户端证书介质是指具有密码许可资质的USBKey、智能IC卡等PC终端上的密码设备,以及符合国家密码政策管理规定的SIM卡、SD卡等手机终端上的密码设备。证书介质应用接口应支持所有主流操作系统,并符合智能IC卡及智能密码钥匙密码应用接口规范。服务器端密码设备是指具有密码许可资质的加密机、加密卡等,应支持所有主流操作系统,并符合公钥密码基础设施应用技术体系 密码设备应用接口规范。通用密码服务接口调用证书介质应用接口或密码设备应用接口,实现对底层密码设备和证书介质的调用,应支持所有主流操作系统,并符合公钥密码基础设施应用技术体系 通用密码服务接口规范。5 统一证书应用接口规范5.1 统一证书应用接口概述统一证书应用接口位于应用系统和密码设备之间,包括:证书介质应用接口、密码设备应用接口、通用密码服务接口和证书应用综合服务接口。5.2 证书应用综合服务接口概述证书应用综合服务接口是供应用系统直接调用的高级证书应用接口,一般情况下分成客户端接口和服务器端接口两个模块。客户端接口是供应用系统客户端程序直接调用的高级接口,应支持所有主流操作系统。客户端接口应支持符合卫生系统数字证书格式规范的数字证书,支持使用符合卫生系统数字证书介质技术规范的证书介质。客户端接口可包括DLL动态库、ActiveX控件、Applet插件等多种产品形态,支持B/S和C/S等架构的应用系统。客户端接口包括以下主要函数:1) 获取接口的版本信息SOF_GetVersion 2) 设置签名算法SOF_SetSignMethod3) 获得当前签名算法SOF_GetSignMethod4) 设置加密算法SOF_SetEncryptMethod5) 获得加密算法SOF_GetEncryptMethod6) 获得证书列表SOF_GetUserList7) 导出用户签名证书SOF_ExportUserCert8) 校验证书口令 SOF_Login9) 修改证书口令 SOF_ChangePassWd10) 导出用户加密证书SOF_ExportExChangeUserCert11) 获得证书信息SOF_GetCertInfo12) 获得证书扩展信息SOF_GetCertInfoByOid13) 获得用户信息SOF_GetUserInfo14) 验证证书有效性SOF_ValidateCert15) 数据签名SOF_SignData16) 验证签名SOF_VerifySignedData17) 文件签名SOF_SignFile18) 验证文件签名SOF_VerifySignedFile19) 加密数据SOF_EncryptData20) 解密数据SOF_DecryptData21) 文件加密SOF_EncryptFile22) 文件解密SOF_DecryptFile23) 公钥加密SOF_PubKeyEncrypt24) 私钥解密SOF_PriKeyDecrypt25) PKCS#7数据签名SOF_SignDataByP726) 验证PKCS#7数据签名SOF_VerifySignedDataByP727) 解析PKCS#7签名包信息SOF_GetP7SignDataInfo28) XML数据签名SOF_SignDataXML29) 验证XML数据签名SOF_VerifySignedDataXML30) 解析XML签名数据SOF_GetXMLSignatureInfo31) 检查控件支持SOF_CheckSupport32) 产生随机数SOF_GenRandom服务器端接口是供应用系统服务器端程序直接调用的高级接口,应支持所有主流操作系统,支持B/S和C/S等系统架构,支持符合卫生系统数字证书格式规范的数字证书,可通过添加证书信任列表的方式实现不同电子认证服务机构证书之间的交叉认证和互信互认。服务器端接口可包括COM组件、JAVA组件等多种形态。服务器端接口应提供以下函数:1) 初始化环境SOF_GetInstance(JAVA组件专用)2) 设置证书信任列表SOF_SetCertTrustList3) 查询证书信任列表别名SOF_QueryCertTrustListAltNames4) 查询证书信任列表SOF_QueryCertTrustList5) 删除证书信任列表SOF_DelCertTrustList6) 设置Web应用名称SOF_SetWebAppName (COM组件专用)7) 设置签名算法SOF_SetSignMethod8) 获得当前签名算法SOF_GetSignMethod9) 设置加密算法SOF_SetEncryptMethod10) 获得加密算法SOF_GetEncryptMethod11) 获得服务器证书SOF_GetServerCertificate12) 产生随机数SOF_GenRandom13) 获得证书信息SOF_GetCertInfo14) 获得证书扩展信息SOF_GetCertInfoByOid15) 验证证书有效性SOF_ValidateCert16) 数据签名SOF_SignData17) 验证签名SOF_VerifySignedData18) 文件签名SOF_SignFile19) 验证文件签名SOF_VerifySignedFile20) 对称算法加密数据SOF_EncryptData21) 解密对称算法加密数据SOF_DecryptData22) 文件加密SOF_EncryptFile23) 文件解密SOF_DecryptFile24) 公钥加密SOF_PubKeyEncrypt25) 私钥解密SOF_PriKeyDecrypt26) PKCS#7数据签名SOF_SignDataByPkcs727) 验证 PKCS#7数据签名SOF_VerifySignedDataByPkcs728) 解析PKCS#7签名包信息SOF_GetP7SignDataInfo29) XML数据签名SOF_SignDataXML30) 验证XML数据签名SOF_VerifySignedDataXML31) 解析XML签名数据SOF_GetXMLSignatureInfo32) 创建时间戳请求SOF_CreateTimeStampRequest33) 创建时间戳响应SOF_CreateTimeStampResponse34) 验证时间戳SOF_VerifyTimeStamp35) 解析时间戳SOF_GetTimeStampInfo36) 获得错误码SOF_GetLastError(COM组件专用)5.3 证书应用综合服务接口客户端接口函数定义1) 获取接口版本信息 SOF_GetVersion原型:int SAF_GetVersion(unsigned int *puiVersion)描述:获取接口的版本号参数:puiVersion out版本号返回值:0 成功非0失败,返回错误代码备注:版本号的格式为:0xAAAABBBB,其中AAAA为主版本号,BBBB为次版本号。2) 设置签名算法SOF_SetSignMethod原型:Void SOF_SetSignMethod (int SignMethod);描述:设置控件签名使用的签名算法。参数:SignMethod in签名算法标识,见表5“算法代码表”。返回值:无3) 获得当前签名算法SOF_GetSignMethod原型:BSTR SOF_GetSignMethod();描述:获得控件签名使用的签名算法参数:无返回值:当前的签名算法4) 设置加密算法SOF_SetEncryptMethod原型:Void SOF_SetEncryptMethod (int EncryptMethod) ;描述:设置控件使用的对称加解密算法。参数:SetEncryptMethodIN对称加解密算法见表5“算法代码表”。返回值:无5) 获得加密算法SOF_GetEncryptMethod原型:BSTR SOF_GetEncryptMethod ();描述:获得控件使用的对称加解密算法参数:无返回值:当前控件使用的加密算法6) 获得证书列表SOF_GetUserList原型:BSTR SOF_GetUserList();描述:取得当前已安装证书的用户列表参数:无返回值:BSTR ret 用户列表字符串数据格式:(用户1|标识1&用户2|标识2&)备注:根据证书应用的策略不同会得到不同的证书列表7) 导出用户签名证书SOF_ExportUserCert原型:BSTR SOF_ExportUserCert(BSTR CertID);描述:根据证书实体唯一标识,获取Base64编码的证书字符串。参数:BSTR CertID in输入参数,证书实体唯一标识返回值:BSTR rv证书字符串空失败空值备注:如果是双证书,导出的是签名证书。8) 校验证书口令 SOF_Login原型:BOOL SOF_Login(BSTR CertID, BSTR PassWd,short nRetryCount)描述:校验证书口令参数:BSTR CertID in输入参数,证书实体唯一标识BSTR PassWd inShort RetryCountout输入参数,口令剩余口令重试次数返回值:成功 TRUE,失败 FALSE9) 修改证书口令 SOF_ChangePassWd原型:BOOL SOF_ChangePassWd(BSTR CertID, BSTR OldPassWd,BSTR NewPassWd)描述:修改证书口令参数:BSTR CertID in输入参数,证书实体唯一标识BSTR OldPassWd in输入参数,旧口令BSTR NewPassWd in输入参数,新口令返回值:成功 TRUE,失败 FALSE10) 导出用户加密证书SOF_ExportExChangeUserCert原型:BSTR SOF_ExportExChangeUserCert (BSTR CertID) ;描述:根据证书实体唯一标识,获取Base64编码的证书字符串。指定获取加密(交换)证书参数:BSTR CertIDin证书实体唯一标识返回值:BSTR rv获取Base64编码的证书字符串空值失败11) 获得证书信息SOF_GetCertInfo原型:BSTR SOF_GetCertInfo(BSTR Cert, short Type);描述:获取证书信息参数:BSTR sCertinBase64编码的证书short Typein获取信息的类型,TYPE参数见表3“证书信息解析代码表”。返回值:BSTRret证书信息空值失败12) 获得证书扩展信息SOF_GetCertInfoByOid原型:BSTR SOF_GetCertInfoByOid(BSTR Cert, BSTR Oid) ;描述:根据OID获取证书私有扩展项信息参数:BSTR sCertinBase64编码的证书BSTR oid in私有扩展对象ID,比如“1.2.156.xxx”返回值:BSTR ret证书OID对应的值空值失败13) 获得用户信息SOF_GetUserInfo原型:BSTR SOF_GetUserInfo (BSTR CertId, short type) ;描述:获得用户信息参数:BSTR Certidin证书标识typein信息类别,参数和意义见表4“证书对应信息表”。返回值:BSTR rettype对应的值空值失败14) 验证证书有效性SOF_ValidateCert原型:BOOL SOF_ValidateCert(BSTR Cert) ;描述:验证证书有效性参数:BSTR sCertinBase64编码的证书返回值:TRUE成功FALSE失败空值失败15) 数据签名SOF_SignData原型:BSTR SOF_SignData(BSTR CertID, BSTR InData,short InDataLen) ;描述:对字符串数据进行数字签名,签名格式为PKCS#1参数:BSTR sCertIDin证书标识BSTR sInDatainShort InDataLenin 签名原文签名原文长度返回值:BSTR ret签名结果空值失败16) 验证签名SOF_VerifySignedData原型:BOOL SOF_VerifySignedData(BSTR Cert, BSTR InData, short InDataLen, BSTR SignValue) ;描述:验证数字签名参数:BSTR sCertin签名者证书,BASE64编码BSTR sInDatain签名原文Short InDataLenin签名原文长度BSTR sSignValuein签名值,BASE64编码返回值:TRUE成功FALSE失败17) 文件签名SOF_SignFile原型:BSTR SOF_SignFile(BSTR CertID, BSTR InFile) ;描述:对文件数字签名参数:BSTR sCertIDin证书标识BSTR sInFilein签名原文文件路径返回值:BSTR ret签名结果空值失败18) 验证文件签名SOF_VerifySignedFile原型:BOOL SOF_VerifySignedFile(BSTR Cert, BSTR InFile, BSTR SignValue) ;描述:验证文件数字签名参数:BSTR sCertin签名者证书BSTR sInFilein签名原文文件路径BSTR sSignValuein签名值返回值:TRUE成功FALSE失败19) 加密数据SOF_EncryptData原型:BSTR SOF_EncryptData(BSTR SymmKey, BSTR Indata) ;描述:使用对称算法加密数据参数:BSTR sKeyin加密密钥BSTR sIndatain待加密的明文返回值:BSTR rv加密后的密文空值失败20) 解密数据SOF_DecryptData原型:BSTR SOF_DecryptData(BSTR SymmKey, BSTR Indata) ;描述:使用对称算法解密数据参数:BSTR SymmKeyin解密密钥BSTR sIndatain待解密的密文返回值:BSTR rv解密后的明文空值失败21) 文件加密SOF_EncryptFile原型:BOOL SOF_EncryptFile(BSTR SymmKey, BSTR InFile, BSTR OutFile) ;描述:使用对称算法加密文件参数:BSTR SymmKeyin加密密钥BSTR InFilein待加密的明文文件路径BSTR OutFilein密文文件保存路径返回值:TRUE成功FALSE失败22) 文件解密SOF_DecryptFile原型:BOOL SOF_DecryptFile(BSTR SymmKey, BSTR InFile, BSTR OutFile) ;描述:使用对称算法解密文件参数:BSTR SymmKeyin解密密钥BSTR InFilein待解密的密文文件路径BSTR OutFilein明文文件保存路径返回值:TRUE成功FALSE失败23) 公钥加密SOF_PubKeyEncrypt原型:BSTR SOF_PubKeyEncrypt(BSTR Cert, BSTR InData) ;描述:使用证书对数据加密。(PKCS#1格式)参数:BSTR Certin证书BSTR InDatain待加密的数据返回值:BSTR rv成功加密后的密文空值失败备注:因为是PKCS#1格式,故加密的数据长度要小于证书的位数。比如1024位的证书,InData长度必须小于12824) 私钥解密SOF_PriKeyDecrypt原型:BSTR SOF_PriKeyDecrypt(BSTR CertID, BSTR InData) ;描述:私钥解密(PKCS#1格式)参数:BSTR CertIDin证书IDBSTR InDatain待解密的数据返回值:BSTR rv成功解密后的明文空值失败25) PKCS#7数据签名SOF_SignDataByP7原型:BSTR SOF_SignDataByP7(BSTR CertID, BSTR InData)描述:对字符串数据进行数字签名,签名格式为PKCS#7参数:BSTR sCertIDin证书标识BSTR sInDatain签名原文返回值:BSTR ret 签名结果空值失败备注:PKCS#7签名结果包含原文+签名者证书+签名值。26) 验证PKCS#7数据签名SOF_VerifySignedDataByP7原型:BOOL SOF_VerifySignedDataByP7 (BSTR P7Data) ;描述:验证数字签名参数:BSTR P7DatainPKCS#7签名包返回值:TRUE成功FALSE失败27) 解析PKCS#7签名包信息SOF_GetP7SignDataInfo原型:BSTR SOF_GetP7SignDataInfo ( BSTR P7Data,short type) ;描述:解析PKCS#7签名包的信息,可获得原文、签名值、签名证书等信息参数:BSTR P7DatainPKCS#7签名包short typein类型返回值:TRUE成功FALSE失败备注:类型:1:原文;2:签名者证书;3:签名值 28) XML数据签名SOF_SignDataXML原型:BSTR SOF_SignDataXML(BSTR CertID, BSTR InData) ;描述:对XML数据进行数字签名,输出符合国际标准的XML签名结果参数:BSTR sCertIDin证书标识BSTR InDatain签名原文,XML格式返回值:BSTR ret签名结果空值失败备注:XML签名标准见 /TR/xmldsig-core/29) 验证XML数据签名SOF_VerifySignedDataXML原型:BOOL SOF_VerifySignedDataXML (BSTR InData) ;描述:验证xml签名参数:BSTR InDatainXML签名值返回值:TRUE成功FALSE失败备注:XML签名标准见 /TR/xmldsig-core/30) 解析XML签名数据SOF_GetXMLSignatureInfo原型:BSTR SOF_GetXMLSignatureInfo (BSTR XMLSignedData,short type) ;描述:解析XML签名数据,获取签名值、XML原文、证书等信息参数:BSTR XMLSignedDatainXML格式的签名数据Typein待解析的参数类型返回值:各项对应的信息备注:type可选的参数和意义:1:xml原文;2:摘要;3:签名值;4:签名证书;5:摘要算法;6:签名算法。31) 检查控件支持SOF_CheckSupport原型:short SOF_CheckSupport();描述:检查控件是否支持当前操作系统和浏览器版本参数:无返回值:int rv0表示支持,1表示不支持。32) 产生随机数SOF_GenRandom原型:BSTR SOF_GenRandom(short len);描述:产生随机数参数:int RanddomLenin待产生的随机数长度(bytes,字节长度)返回值:BSTR rv随机数值(Base64编码后的)5.4 证书应用综合服务接口服务器端COM组件函数定义1) 设置证书信任列表SOF_SetCertTrustList原型:short SOF_SetCertTrustList(BSTR CTLAltName, BSTR CTLContent, int CTLContentLen);描述:设置证书信任列表参数:CTLAltNamein证书信任列表别名CTLContentin证书信任列表内容(Base64编码格式)CTLContentLenin证书信任列表长度返回值:0成功其他失败,详见错误码列表备注:错误代码:SOR_PARAMERR:参数错误2) 查询证书信任列表别名SOF_QueryCertTrustListAltNames原型:BSTR SOF_QueryCertTrustListAltNames();描述:查询证书信任列表别名参数:无返回值:非空成功,信任列表别名的字符串组合,如“CA001CA002CA003”其他失败,详见错误码列表备注:错误代码:SOR_CTLNOTFOUND:没有信任列表3) 查询证书信任列表SOF_QueryCertTrustList原型:BSTR SOF_QueryCertTrustList (BSTR CTLAltName);描述:根据别名查询证书信任列表参数:BSTR CTLAltNamein证书信任列表别名返回值:非空成功,Base64编码格式的证书信任列表;其他失败,详见错误码列表备注:SOR_CTLNOTFOUND:没有信任列表SOR_PARAMERR:参数错误。4) 删除证书信任列表SOF_DelCertTrustList原型:short SOF_DelCertTrustList(BSTR CTLAltName);描述:根据别名删除证书信任列表参数:CTLAltNamein证书信任列表别名返回值:0成功其他失败,详见错误码列表备注:SOR_NULLPOINTER:参数为空指针SOR_CTLNOTFOUND:没有对应的信任列表5) 设置Web应用名称SOF_SetWebAppName 原型:short SOF_SetWebAppName(BSTR WebAppName);描述:设置web应用的名称。该名称要和服务器xml文件对应。接口从xml文件中读取webapp的属性包括使用的证书、可信的根证书、证书验证的策略等参数:WebAppNamein应用的名称返回值:0成功其他失败,详见错误码列表备注:SOR_NULLPOINTER:参数为空指针。SOR_APPNOTFOUND:应用没发现6) 设置签名算法SOF_SetSignMethod原型:Short SOF_SetSignMethod(BSTR signMethod);描述:设置COM组件签名运算使用的签名算法。缺省为“RSA-SHA1”。参数:signMethodIN签名算法返回值:0成功其他失败详见附录错误码定义备注:SOR_NULLPOINTER:参数为空指针。SOR_PARAMETERNOTSUPPORT :不支持的参数7) 获得当前签名算法SOF_getSignMethod原型:BSTR SOF_signMethod GetSignMethod();描述:获得组件签名运算使用的签名算法参数:无返回值:当前的签名算法8) 设置加密算法SOF_SetEncryptMethod原型:short SOF_SetEncryptMethod(BSTR EncryptMethod); 描述:设置组件对数据加解密使用的对称算法参数:EncryptMethodIN对称加解密算法见表5“算法代码表”。返回值:0成功备注:错误代码:SOR_NULLPOINTER:参数为空指针。SOR_PARAMETERNOTSUPPORT :不支持的参数9) 获得加密算法SOF_GetEncryptMethod原型:BSTR SOF_GetEncryptMethod();描述:获得组件使用的对称加解密算法参数:无返回值:当前控件使用的加密算法10) 获得服务器证书SOF_GetServerCertificate原型:BSTR SOF_GetServerCertificate(int CertUsage);描述:读取当前应用指定的服务器证书参数:INT certUsage 证书用途证书用途法1:交换证书、2:签名证书返回值:Base64编码的服务器证书成功null失败备注:错误代码SOR_PARAMETERNOTSUPPORT:不支持的参数11) 产生随机数SOF_GenRandom原型:BSTR SOF_GenRandom(int len);描述:产生指定长度的随机数参数:int lenin待产生的随机数长度(bytes,字节长度)返回值:随机数值Base64编码后的备注:bytes,字节长度12) 获得证书信息SOF_GetCertInfo原型:BSTR SOF_GetCertInfo(BSTR Base64EncodeCert, int type);描述:获取证书信息参数:BSTR Base64EncodeCertBase64编码的X.509数字证书int type获取证书信息的类型,见表3“证书信息解析代码表”。返回值:BSTR ret 证书信息空值失败备注:错误代码:SOR_NULLPOINTER:某一个参数为空指针。SOR_CERTENCODE:证书编码格式错误SOR_PARAMETERNOTSUPPORT :不支持的参数13) 获得证书扩展信息SOF_GetCertInfoByOid原型:BSTR SOF_GetCertInfoByOid(BSTR Base64EncodeCert, BSTR oid);描述:根据OID获取证书私有扩展项信息参数:BSTR Base64EncodeCertBase64编码的证书BSTR oid私有扩展对象ID,如“1.2.156.xxx”返回值:BSTR ret证书OID对应的值空值出错备注:错误代码:SOR_NULLPOINTER:某一个参数为空指针。SOR_CERTENCODE:证书编码格式错误。14) 验证证书有效性SOF_ValidateCert原型:short SOF_ValidateCert(BSTR Base64EncodeCert)描述:根据应用的策略根据验证证书有效性参数:Base64EncodeCertIN待验证的base64编码证书返回值:0验证成功其他验证失败,见错误代码备注:错误代码:SOR_NULLPOINTER: Base64EncodeCert为null。SOR_CERTENCODE:证书编码格式错误。SOR_CERTINVALID证书无效,不是可信ca颁发的证书。SOR_CERTNOTYETVALID证书未生效。SOR_CERTHASEXPIRED证书已过期。SOR_CERTREVOKED证书已经被吊销15) 数据签名SOF_SignData原型:BSTR SOF_SignData(BSTR InData,int InDataLen);描述:对字符串数据进行数字签名,签名格式为PKCS#1参数:InDataIN 待签名的数据原文InDataLenIN待签名的数据原文长度返回值:返回PKCS#1格式的签名值的base64编码成功备注:错误代码:SOR_NULLPOINTER: InData为null。SOR_SIGNDATA:签名失败。16) 验证签名SOF_VerifySignedData原型:short SOF_VerifySignedData(BSTR Base64EncodeCert, BSTR InData,int InDataLen ,BSTR SignValue);描述:验证数字签名参数:Base64EncodeCertINbase64编码的签名证书InDataIN待验证的原文InDataLenIN待验证的原文长度SignValueIN签名值返回值:0验证成功其他验证失败备注:错误代码:SOR_NULLPOINTER: 其中一个输入参数为null。SOR_CERTENCODE:证书编码错误。SOR_VERIFYSIGNDATA:验证签名失败17) 文件签名SOF_SignFile原型:BSTR SOF_SignFile(BSTR InFile);描述:对文件数字签名。得到base64编码后的PKCS#1格式的签名数据。参数:InFileIN 待签名的文件路径返回值:base64编码后的PKCS#1格式的签名数据备注:错误代码:SOR_NULLPOINTER: InFile为null。SOR_READFILE:读文件异常,可能文件不存在或没有读取权限等。18) 验证文件签名SOF_VerifySignedFile原型:short SOF_VerifySignedFile(BSTR Base64EncodeCert, BSTR InFile, BSTR SignValue);描述:验证文件数字签名参数:Base64EncodeCertIN base64编码的签名证书InFileIN待验证的原文SignValueIN签名值返回值:0验证成功其他验证失败,见错误代码备注:错误代码:SOR_NULLPOINTER: 其中一个输入参数为null。SOR_READFILE:读文件异常,可能文件不存在或没有读取权限等。SOR_CERTENCODE:证书编码错误。SOR_VERIFYSIGNDATA:验证签名失败。 19) 对称算法加密数据SOF_EncryptData原型:BSTR SOF_EncryptData(BSTR key, BSTR InData);描述:使用对称算法加密数据参数:BSTR keyIN加密密钥BSTR InDataIN待加密的明文返回值:成功加密后的密文Base64编码后的空值失败备注:SOR_NULLPOINTER: 其中一个输入参数为null。SOR_ENCRYPTDATA:数据加密失败。20) 解密数据SOF_DecryptData原型:BSTR SOF_DecryptData(BSTR key, BSTR InData);描述:使用对称算法解密数据参数:BSTR keyIN解密密钥BSTR InDataIN待解密的密文返回值:解密后的明文成功空值失败备注:错误代码:SOR_NULLPOINTER: 其中一个输入参数为null。SOR_DECRYPTDATA: 数据解密失败。21) 文件加密SOF_EncryptFile原型:Short SOF_EncryptFile(BSTR key, BSTR InFile, BSTR OutFile);描述:使用对称算法加密文件参数:BSTR keyIN加密密钥BSTR InFileIN待加密的明文文件路径BSTR OutFileIN密文文件保存路径返回值:0成功其他见错误码备注:SOR_NULLPOINTER: 其中一个输入参数为null。SOR_READFILE: 读文件异常,可能文件不存在或没有读取权限等。SOR_WRITEFILE写文件异常,可能文件不存在或没有写权限等SOR_ENCRYPTDATA:数据加密失败22) 文件解密SOF_DecryptFile原型:short SOF_DecryptFile(BSTR key, BSTR InFile, BSTR OutFile);描述:使用对称算法解密文件参数:BSTR key IN解密密钥BSTR InFileIN待解密的密文文件路径BSTR OutFileIN明文文件保存路径返回值:0成功其他见错误代码表备注:错误代码:SOR_NULLPOINTER: 其中一个输入参数为null。SOR_READFILE: 读文件异常,可能文件不存在或没有读取权限等。SOR_WRITEFILE写文件异常,可能文件不存在或没有写权限等。SOR_DECRYPTDATA:数据解密失败23) 公钥加密SOF_PubKeyEncrypt原型:BSTR SOF_PubKeyEncrypt(BSTR Base64EncodeCert, BSTR InData); 描述:使用证书对数据加密。(PKCS#1格式)参数:BSTR Base64EncodeCert IN证书BSTR InDataIN待加密的数据返回值:返回加密后的密文base64编码后的数据空失败备注:错误代码:SOR_NULLPOINTER: 其中一个输入参数为null。SOR_CERTENCODE:证书编码格式错误。SOR_ENCRYPTDATA:数据加密失败。因为是PKCS#1格式,故加密的数据长度要小于证书的位数。比如1024位的证书,InData长度必须小于128。24) 私钥解密SOF_PriKeyDecrypt原型:BSTR SOF_PriKeyDecrypt(BSTR InData);描述:私钥解密(PKCS#1格式)参数:BSTR InDataIN待解密的数据返回值:返回解密后的明文成功空失败备注:错误代码:SOR_NULLPOINTER: 其中一个输入参数为null。SOR_DECRYPTDATA:数据解密失败。25) PKCS#7数据签名SOF_SignDataByP7原型:BSTR SOF_SignDataByP7 (BSTR InData);描述:对字符串数据进行数字签名,签名格式为PKCS#7参数:InDataIN 待签名的数据原文返回值:返回PKCS#7格式的签名值的b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论