安全生产_安全中间件二次开发手册_第1页
安全生产_安全中间件二次开发手册_第2页
安全生产_安全中间件二次开发手册_第3页
安全生产_安全中间件二次开发手册_第4页
安全生产_安全中间件二次开发手册_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

安全中间件二次开发手册安全中间件二次开发手册 Copyright 2003 Shanghai wellhope Information Technology Co.,Ltd. All Rights Reserved 目目 录录 1引言引言.4 1.1编写目的.4 1.2项目背景.4 1.3术语和缩写词.5 1.4遵循标准.5 2系统概述系统概述.7 2.1功能.8 2.2性能.9 精度.9 时间特性.9 灵活性.9 3运行环境运行环境.10 3.1硬件系统.10 3.2支撑软件.10 4开发说明开发说明.10 4.1客户端描述.11 4.1.1APP客户端控件接口说明11 4.1.1.1AtvInit.11 4.1.1.2AtvEnd11 4.1.1.3SetHardWare.12 4.1.1.4Login.12 4.1.1.5ChangeLoginPin .12 4.1.1.6Logout.13 4.1.1.7GetCert13 4.1.1.8CheckCert .13 4.1.1.9GetCertInfo.14 4.1.1.10SealEnvelope.15 4.1.1.11SealEnvelopeEx16 4.1.1.12OpenEnvelope.17 4.1.1.13SignData17 4.1.1.14SignDataEx.18 4.1.1.15VerifySign.18 4.1.1.16GenRandom 19 4.1.1.17HashData.19 4.1.1.18SymmEncrypt .20 4.1.1.19SymmDecrypt.20 4.1.1.20GetCertFromLDAP.21 4.1.1.21GetAndSaveCRL 21 4.1.1.22ReadFromFile .22 4.1.1.23WriteToFile.22 4.1.1.24GetStamp.22 4.1.1.25VerifyStamp23 4.1.1.26GetAlgoFromPA.23 4.1.1.27Base64Encode.24 4.1.1.28Base64Decode.24 4.1.1.29GetParamValue.25 4.2服务端描述.25 4.2.1 APP应用服务器端JAVA接口25 4.2.1.1 release 25 4.2.1.2GetCurStatus25 4.2.1.3AdvBase64Encode.26 4.2.1.4 AdvBase64Decode26 4.2.1.5AdvGetCert26 4.2.1.6AdvCheckCert26 4.2.1.7AdvGetCertInfo .27 4.2.1.8AdvSealEnvelope.28 4.2.1.9 AdvSealEnvelopeEx29 4.2.1.10 AdvOpenEnvelope.30 4.2.1.11 AdvSignData30 4.2.1.12 AdvSignDataEx .31 4.2.1.13 AdvVerifySign.31 4.2.1.14 AdvGenRandom 32 4.2.1.15 AdvHashData.32 4.2.1.16 AdvSymmEncrypt33 4.2.1.17 AdvSymmDecrypt .33 4.2.1.18 AdvGetCertFromLDAP.34 4.2.1.19 AdvGetCRLFromLDAP34 4.2.1.20 AdvUploadCRL.35 4.2.1.21 AdvReadFromFile35 4.2.1.22 AdvWriteToFile.35 4.2.1.23 AdvGetStamp.36 4.2.1.24 AdvVerifyStamp36 4.2.1.25 AdvGetAlgoFromPA.36 4.2.1.26 AdvGetAttrCertInfo.37 4.2.1.27 AdvGetPACertInfo37 4.2.1.28 AdvGetAttrCertListFromLDAP38 5应用开发实例应用开发实例.39 5.1身份认证参考模型.40 5.2加解密功能参考模型.43 5.3签名验签功能参考模型.44 1 引言引言 1.1编写目的编写目的 该文档主要规范了 PKI 安全中间件的功能接口定义。在整个 PKI 体系中,安全中间件的作用非常关键,它通过调用底层的 WHCSP 及 证书管理器等,封装了一系列 PKI 应用接口,满足上层 PKI 具体应用 的需要。 本标准适用于 PKI 上层应用的需求,主要为 CA 系统。适用对象 为所有采用安全中间件的系统开发人员。 1.2项目背景项目背景 高级密码服务,顾名思义,是为用户提供相对高级和抽象的密 码服务,而不是像底层的 CSP 和硬件加密算法那样,提供比较低级和 具体的密码服务。一般来说,高级的密码服务应该能够让不懂加密、 解密和签名、验签等概念的用户也能够透明的使用,也就是说把密码 学算法的细节给屏蔽掉了。 1.3术语和缩写词术语和缩写词 1.4遵循标准遵循标准 列出参考资料,如: RFC 2459 PKIX PKIX 证书和 CRL 概要 IETF: PKIX 证书策略和证书实践框架 IETF:RFC 2510: CMP(证书管理协议) RFC 2797: CMC(CMS 上的证书管理消息) RFC 2511: CRMF(证书请求消息格式) X.208 抽象语法符号 1 描述(ASN.1) 缩写、术缩写、术 语语 解解 释释 PKI公钥基础设施(Public Key Infrastructure) CSPCryptographic Service Provider(密码服务提供者) CRL 证书撤消列表( Certificate Revocation List ) 一个标记一系列不再被证书发布者所信任的证书的签名列表 (通称黑名单)。 LDAP 目录查询协议( Lightweight Directory Access Protocol ) 本设计指轻型目录访问协议 LDAP。用户可使用 LDAP 协议, 通过网络到目录服务器查询系统中的证书或证书撤消列表。 OCSP 在线证书状态查询协议(Online Certificate Status Protocol) 用户可使用 OCSP 协议,通过网络到 OCSP 服务器实时查 询系统中证书的当前有效/无效状态。 X.209 抽象语法符号 1 基本编码规范说明(ASN.1) X.680 信息技术抽象语法符号 1 (ASN.1)基本符号规范 X.681 信息技术抽象语法符号 1 (ASN.1)信息目标规范 X.682 信息技术抽象语法符号 1 (ASN.1)强制规范 X.690 信息技术ASN.1 编码规则基本编码规则(BER), 规 范编码规则(CER)和主要编码规则(DER) X.509v4 信息技术开放式系统互连目录:公钥和属性证 书框架 X.500 开放式系统互连目录:概念,模型和服务概述 LDAP 轻目录访问协议:由 ISO 于 1997 年 12 月发布。 PKCS#1 (v1.5) RSA 密码算法 PKCS#5 (v2.0) 基于口令的密码标准 PKCS#6 (v1.5) 扩展的数字证书语法标准 PKCS#7 (v1.5) 密文消息语法标准 PKCS#8 (v1.5) 私钥信息语法标准 PKCS#9 (v2.0) 可选择的属性类型 PKCS#10 (v1.5) 数字证书申请语法标准 PKCS#11 硬件密码设备接口标准 PKCS#12 (v1.0) 个人信息交换语法 PKCS#15 (v1.1) 多个应用访问标准 X.509 开放式系统互连目录:公钥和授权证书框架 ITU-T X.500 开放式系统互连目录:概念,模型和服务概述 CORBA(公共对象请求代理体系结构) v2.4 2 系统概述系统概述 安 全 中 间 件 ACTIVX CORBA 证书管理器 WHCSP 硬件证书接口 硬件密钥接口 CRL 服务 私钥和口令保护 硬件驱动程序 OCSP TSP 在 PKI 体系结构中【见上图】,安全中间件总揽了证书管理器和 CSP 的所有功能。它在 PC 端和 PKI 服务器端都是直接面向最终用户 的调用接口,因此,它必须能够屏蔽掉 PC 端和 PKI 服务器端的不同 情况。 安全中间件是为用户提供相对高级和抽象的密码服务,而不是像 底层的 CSP 和硬件加密算法那样,提供比较低级和具体的密码服务。 一般来说,安全中间件服务应该能够让不懂加密、解密和签名、验签 等概念的用户也能够透明的使用,也就是说把密码学算法的细节给屏 蔽掉了。 2.1功能功能 抽象的算法服务 1. 对指定的明文进行加密的功能,包括口令加密、对称密钥 加密和公开密钥加密。 2. 对指定的密文进行解密的功能,包括对称密钥解密和公开 密钥解密。 3. 对指定的明文进行签名的功能。 4. 对指定的签名进行验签的功能 5. 封装 PKCS7 数字信封 6. 解开 PKCS7 数字信封 7. 对明文进行散列。 8. 产生随机数。 抽象的证书服务 1. 根据标签得到证书 2. 验证证书的有效性 3. 生成 PKCS10 格式的证书请求文件 4. 输入绑定的证书和私钥。 私钥和口令保护服务 1. 检查私钥口令 2. 更改私钥口令 3. 检查 PIN 4.更改 PIN 编码服务 5. ASE64 的编码功能 6.BASE64 的解码功能 2.2性能性能 精度精度 TSP 响应时间 3 SHA1RSA CN Shanghai Zhangjiang Shanghai wellhope E-Bussiness Certificate Authority WELLHOPE 自然人 CA 2003 年 08 月 21 日 2004 年 08 月 21 日 CN Shanghai Zhangjiang wellhope infosec user5 100f34d52b7fbae5b8adc3104fc8f7dc6087deed4ba1946dfadd350 1e59fc9cbd86b50c79b2ce09630fedb54c37aec1434f9f4a15e3a15e9b09997b0 3af16c7465f816bfe2b1a49821a0090e283f82ebf2ed7daa2e76a5ada469a14e78 108dde58ac13b826fb 4.1.1.10 SealEnvelope 功能简介数字信封加密。 内部的处理过程是首先随机生成一对称密钥(由入口参数指定其算法或 者通过 PA 确定),然后用此对称密钥加密输入的数据,最后用公钥加密 产生的此对称密钥。这是我们推荐的一种对数据进行加密的方法,因为它 不仅保证了加密的高效性(对称密钥的快速加密),还保证了加密的高强 度性(公钥的强加密)。 此函数的加密输出结果遵循 PKCS#7 的编码标准(EnvelopedData)。 接口名称BSTR SealEnvelope( BSTR i_encCert, long i_symmAlgo, BSTR i_inData); 参数说明 入参说明i_encCertIN: 用于加密的数字证书,已编过码。 i_symmAlgoIN: 信封中所用对称算法标识。取值如下: CALG_RC4 = 26625 CALG_3DES = 26115 CALG_33 = 9 viaPA = 0,说明加密过程首先将连接到 PA(策 略中心)获取相应的参数进行后续的工作 i_inDataIN: 输入原文信息,如是二进制数据则已编过码。 出参说明无 返回值输出的已编码的密文结果。 4.1.1.11 SealEnvelopeEx 功能简介用多证书批量生成数字信封。 此函数的加密输出结果遵循 PKCS#7 的编码标准(EnvelopedData)。 接口名称BSTR SealEnvelopeEx(BSTR i_encCert, long i_certsize, long i_symmAlgo, BSTR i_inData); 参数说明 入参说明i_encCertIN: 用于加密的数字证书,已编过码,多个证书间以“”隔开。 i_certsizeIN: 保留参数 i_symmAlgoIN: 信封中所用对称算法标识。 CALG_RC4 = 26625 CALG_3DES = 26115 CALG_33 = 9 viaPA = 0,说明加密过程首先将连接到 PA(策略中 心)获取相应的参数进行后续的工作 i_inDataIN: 输入原文信息,如是二进制数据则已编过码。 出参说明无 返回值输出的已编码的密文结果。 4.1.1.12 OpenEnvelope 功能简介解析数字信封 私钥标签在配置文件中定义,运行时弹出输入框提示用户输入私钥保护 口令。 接口名称BSTR OpenEnvelope(BSTR i_inData); 参数说明 入参说明i_inDataIN: 输入已编码的信封数据。 出参说明无 返回值输出原文信息, 如是二进制数据则已编过码。 4.1.1.13 SignData 功能简介对输入数据进行数字签名。 私钥标签在配置文件中定义,运行时弹出输入框提示用户输入私钥保护 口令。 接口名称BSTR SignData(BSTR i_inData, int i_algoType, int i_signType); 参数说明 入参说明i_inDataIN:输入的待签名数据,二进制数据需要做编码处理。 i_algoTypeIN:签名算法 取值如:32772 - sha1RSA 32771 - md5RSA sha1RSA、md5RSA 说明签名采用的是何种摘要算法签名算法 i_signTypeIN:签名值类型 取值:0不包含原文的纯签名 1包含原文的 PKCS7 格式数据 出参说明无 返回值输出的已编码的签名数据。 4.1.1.14 SignDataEx 功能简介对输入数据进行数字签名。 私钥标签在配置文件中定义,运行时弹出输入框提示用户输入私钥保护 口令。 接口名称BSTR SignData(BSTR i_sigCert, BSTR i_inData, int i_algoType, int i_signType); 参数说明 入参说明i_sigCertIN:通信对方的证书,当需要通过 PA 获取签名算法时需输入 i_inDataIN:输入的待签名数据,二进制数据需要做编码处理。 i_algoTypeIN:签名算法 取值如:32772 - sha1RSA 32771 - md5RSA 0 -viaPA 等 sha1RSA、md5RSA 说明签名采用的是何种摘要算法签名算法 viaPA = 0,说明签名过程首先将连接到 PA(策略中心)获取相应的参数进 行后续的工作 i_signTypeIN:签名值类型 取值:0不包含原文的纯签名 1包含原文的符合 PKCS7 格式的数据 出参说明无 返回值输出的已编码的签名数据。 4.1.1.15 VerifySign 功能简介对输入数据进行数字签名的验证 接口名称BOOL VerifySign( BSTR i_checkCert, BSTR i_clearText, BSTR i_signature, int i_algoType, int i_signType); 参数说明 入参说明i_checkCert IN:验证所用的证书。 i_clearText IN:签名的原文。如签名值包含原文,置空即可。 i_signature IN:待验证的签名数据。 i_algoTypeIN:签名算法。如签名值不符合 PKCS7 标准,需要输入签 名算法。 取值如:32772 - sha1RSA 32771 - md5RSA 0 -viaPA 等 sha1RSA、md5RSA 说明签名采用的是何种摘要算法签名算法 viaPA 参数说明签名过程将连接到 PA(策略中心)获取相应的签名参数进 行后续的工作。 i_signTypeIN:签名值类型 取值:0不包含原文(纯签名值) 1包含原文的符合 PKCS7 格式的数据 出参说明无 返回值TRUE:成功 FALSE:失败 说明目前的用法是:当验证纯签名值时,需要输入签名算法或者通过策略解析 器获取匹配算法; 当验证 PKCS7 格式的签名内容时,由于本身自带了签名算法,因此没 有必要再次调用相应的策略解析器了。 4.1.1.16 GenRandom 功能简介生成一定长度的随机数/对称密钥。 接口名称BSTR GenRandom(int len); 参数说明 入参说明lenIN: 指定的长度(字节数)。 出参说明无 返回值输出已编码的随机数/对称密钥。 4.1.1.17 HashData 功能简介对输入数据进行哈希运算。 接口名称BSTR HashData( int hashAlgo, BSTR inData ); 参数说明 入参说明hashAlgoIN: 哈希算法标识 ALGO_SHA1 32772 ALGO_MD5 32771 inDataIN: 输入数据信息,如是二进制数据则已编码。 出参说明无 返回值返回编码后的哈希值。 4.1.1.18 SymmEncrypt 功能简介用指定产生的对称密钥 KEY 来加密数据。 接口名称BSTR SymmEncrypt(long i_symmAlgo, BSTR i_symmkey, BSTR i_indata); 参数说明 入参说明i_symmAlgoIN: 对称算法标识。 例如: CALG_RC4 = 26625 CALG_3DES = 26115 CALG_33 = 9 i_symmKeyIN: 对称密钥,已编码。 i_inDataIN: 输入的原文,二进制数据流先编码。 出参说明无 返回值输出已编码后的密文。 4.1.1.19 SymmDecrypt 功能简介用指定产生的对称密钥 KEY 来解密密文数据。 接口名称BSTR SymmDecrypt(long i_symmAlgo, BSTR i_symmkey, BSTR i_indata); 参数说明 入参说明i_symmAlgoIN: 对称算法标识。 例如: CALG_RC4 = 26625 CALG_3DES = 26115 CALG_33 = 9 i_symmKeyIN: 对称密钥,已编码。 i_inDataIN: 输入的密文,已编码。 出参说明无 返回值输出解密后的原文,如是二进制数据则已编码。 4.1.1.20 GetCertFromLDAP 功能简介从 LDAP 服务器查询和获取用户证书。 接口名称BSTR GetCertFromLDAP(long i_searchType, long i_certType, BSTR i_searchValue); 参数说明 入参说明i_searchTypeIN: 查找类型 取值范围为 1 按用户 ID 查询 2 按用户邮件地址查询 3 按证书 ID 查询 i_certTypeIN: 证书类型 取值范围为 1 加密证书 2 签名证书 此参数对于按证书 ID 查询无效 i_searchValueIN: 查询字符串信息 当 searchType 取值为 1 时,此参数为用户 ID 字符串 当 searchType 取值为 2 时,此参数为用户邮件字符串 当 searchType 取值为 3 时,此参数为证书 ID 字符串 出参说明无 返回值输出已编码后的证书信息。 4.1.1.21 GetAndSaveCRL 功能简介从 LDAP 服务器获取 CRL 列表信息,并保存在本地。 写入的文件路径在注册表中指定。 HKEY_LOCAL_MACHINESOFTWAREwellhopesettingCRLSetting “CRLData“=“C:WINNTSystem32CRLDATA.crl“ 接口名称BOOL GetAndSaveCRL(); 参数说明 入参说明无 出参说明无 返回值TRUE:成功 FALSE:失败 4.1.1.22 ReadFromFile 功能简介从本地读取文件内容。 接口名称BSTR ReadFromFile(BSTR fileName); 参数说明 入参说明fileNameIN: 要读取的文件全路径名。如果为”空,则弹出文件选择对 话框。 出参说明无 返回值输出已编码过的文件数据信息 4.1.1.23 WriteToFile 功能简介将数据写入到本地文件。 接口名称BOOL WriteToFile(BSTR fileName BSTR writeData); 参数说明 入参说明fileNameIN: 要保存的文件名称 writeDataIN: 要写入文件的数据,已编码。 出参说明无 返回值TRUE:成功 FALSE:失败 4.1.1.24 GetStamp 功能简介对输入数据加盖时间戳。 接口名称BSTR GetStamp(BSTR inData); 参数说明 入参说明inDataIN: 要加盖时间戳的数据,如是二进制数据则已编码。 出参说明无 返回值返回已编码的盖戳数据。 4.1.1.25 VerifyStamp 功能简介验证时间戳,如果成功返回盖戳时间。 接口名称BSTR VerifyStamp(BSTR inData, BSTR inStampData) 参数说明 入参说明inDataIN: 加盖时间戳的原文数据,如是二进制数据则已编码。 inStampDataIN: 时间戳签名数据 出参说明无 返回值返回盖戳时间字符串。 日期格式:03 09 02 17 27 30 年 月 日 时 分 秒 4.1.1.26 GetAlgoFromPA 功能简介通过策略解析器从 PA 获取通信双方相应的策略证书,并加以匹配, 确定通信过程中使用的具体算法。 接口名称long GetAlgoFromPA(BSTR ownerCert, BSTR otherCert, int algoKind, int priorityKind); 参数说明 入参说明ownerCertIN:自己的证书 otherCertIN:对方的证书 algoKindIN:要获取的密码算法的种类 1表示非对称算法 2表示对称算法 3表示摘要算法 今后可以扩充 priorityKindIN:通信双方所属机构在通信中算法集匹配时的优先级别 0 对方优先级高 0 优先级相等 0 自已优先级高 出参说明无 返回值具体算法对应的值 9 表示 CALG_33 26625 表示 CALG_RC4 26115 表示 CALG_3DES 32772 表示 ALGO_SHA1 32771 表示 ALGO_MD5 100 表示 ALGO_RSA 101 表示 ALGO_ECC 0 表示没有匹配的算法,无法进行相应的通信 4.1.1.27 Base64Encode 功能简介对输入数据进行编码 接口名称 BSTR Base64Encode(BSTR inData) 参数说明 入参说明 inData IN:要编码的数据 出参说明无 返回值返回编码值 4.1.1.28 Base64Decode 功能简介对输入数据进行解码。 接口名称 BSTR Base64Decode(BSTR inData) 参数说明 入参说明 inData IN:要解码的数据 出参说明无 返回值返回解码后的原文 4.1.1.29 GetParamValue 功能简介从配置文件(C:ConfigClient.conf)中获取相关配置信息。 接口名称BSTR GetParamValue(BSTR paramKey); 参数说明 入参说明paramKeyIN:要查找的键名 出参说明无 返回值返回相应键的键值 4.2服务端描述服务端描述 4.2.1 APP 应用服务器端应用服务器端 JAVA 接口接口 4.2.1.1 release 功能简介进行开发包函数库调用完毕后内部存储区的清除工作。 接口名称boolean release(); 参数说明 入参说明无 出参说明无 返回值成功:true 失败:false 4.2.1.2GetCurStatus 功能简介得到当前状态代码。 接口名称int GetCurStatus(); 参数说明 入参说明无 出参说明无 返回值返回当前状态代码。 4.2.1.3AdvBase64Encode 功能简介对二进制数据进行 BASE64 编码。 接口名称String AdvBase64Encode(byte i_inData); 参数说明 入参说明i_inDataIN: 要编码的二进制数据 出参说明无 返回值输出已编码的数据。 4.2.1.4 AdvBase64Decode 功能简介对 BASE64 编码数据解码。 接口名称byte AdvBase64Decode(String i_inData); 参数说明 入参说明i_inDataIN:要解码的 BASE64 编码数据 出参说明无 返回值输出解码后的二进制数据。 4.2.1.5AdvGetCert 功能简介根据证书标签和证书类型读取服务器证书。 证书标签写在配置文件中,见前面 Client.conf 配置文件。 接口名称String AdvGetCert(int certType); 参数说明 入参说明certTypeIN:证书类型 1 - 加密证书 2 - 签名证书 出参说明无 返回值返回编码后的证书信息。 4.2.1.6AdvCheckCert 功能简介验证证书的有效性。 在验证过程中通过本地 CRL 列表进行证书的验证。 接口名称boolean AdvCheckCert(String i_inCert); 参数说明 入参说明i_inCertIN:待验证的证书,已编码。 出参说明无 返回值成功:true 失败:false 4.2.1.7AdvGetCertInfo 功能简介解析证书信息,并以 XML 字符串格式返回 接口名称String AdvGetCertInfo(String i_inCert); 参数说明 入参说明i_inCertIN:待解析的证书,已编码。 出参说明无 返回值返回采用 XML 标准结构的证书信息。 举例 3 SHA1RSA CN Shanghai Zhangjiang Shanghai wellhope E-Bussiness Certificate Authority WELLHOPE 自然人 CA 2003 年 08 月 21 日 2004 年 08 月 21 日 CN Shanghai Zhangjiang wellhope infosec user5 100f34d52b7fbae5b8adc3104fc8f7dc6087deed4ba1946dfadd350 1e59fc9cbd86b50c79b2ce09630fedb54c37aec1434f9f4a15e3a15e9b09997b0 3af16c7465f816bfe2b1a49821a0090e283f82ebf2ed7daa2e76a5ada469a14e78 108dde58ac13b826fb 4.2.1.8AdvSealEnvelope 功能简介数字信封加密。 内部的处理过程是首先随机生成一对称密钥(由入口参数指定其算法或 者通过 PA 确定),然后用此对称密钥加密输入的数据,最后用公钥加密 产生的此对称密钥。这是我们推荐的一种对数据进行加密的方法,因为它 不仅保证了加密的高效性(对称密钥的快速加密),还保证了加密的高强 度性(公钥的强加密)。 此函数的加密输出结果遵循 PKCS#7 的编码标准(EnvelopedData)。 接口名称String AdvSealEnvelope(String i_encCert, int i_symmAlgo, byte i_inData); 参数说明 入参说明i_encCertIN: 用于加密的数字证书,已编过码。 i_symmAlgoIN: 信封中所用对称算法标识。 CALG_RC4 = 26625 CALG_3DES = 26115 CALG_33 = 9 viaPA = 0,说明加密过程首先将连接到 PA(策 略中心)获取相应的参数进行后续的工作 i_inDataIN: 输入原文信息。 出参说明无 返回值输出的已编码的密文结果。 4.2.1.9 AdvSealEnvelopeEx 功能简介用多证书批量生成数字信封。 此函数的加密输出结果遵循 PKCS#7 的编码标准(EnvelopedData)。 接口名称String AdvSealEnvelopeEx(String i_encCert, int i_certnum, int i_symmAlgo, byte i_inData); 参数说明 入参说明i_encCertIN: 用于加密的数字证书,已编过码,多个证书间以“”隔开。 i_certnumIN: 生成信封的证书数目 i_symmAlgoIN: 信封中所用对称算法标识。 CALG_RC4 = 26625 CALG_3DES = 26115 CALG_33 = 9 viaPA = 0,说明加密过程首先将连接到 PA(策略中 心)获取相应的参数进行后续的工作 i_inDataIN: 输入原文信息。 出参说明无 返回值输出的已编码的密文结果。 4.2.1.10 AdvOpenEnvelope 功能简介对数字信封进行解密工作,即拆封工作。私钥标签在配置文件中定义。 接口名称byte AdvOpenEnvelope(String keyPasswd, String i_inData); 参数说明 入参说明keyPasswdIN: 解密私钥的保护口令。 i_inDataIN: 输入已编码的信封数据。 出参说明无 返回值输出原文信息。 4.2.1.11 AdvSignData 功能简介对输入数据进行数字签名。 私钥标签在配置文件中定义。 接口名称String AdvSignData(String keyPasswd, byte i_inData, int i_algoType, int i_signType); 参数说明 入参说明keyPasswdIN:签名私钥的保护口令。 i_inDataIN:输入的待签名数据。 i_algoTypeIN:签名算法 取值如:32772 - sha1RSA 32771 - md5RSA sha1RSA、md5RSA 说明签名采用的是何种摘要算法签名算法 i_signTypeIN:签名值类型 取值:0不包含原文的纯签名 1包含原文的符合 PKCS7 格式的数据 出参说明无 返回值输出的已编码的签名数据。 4.2.1.12 AdvSignDataEx 功能简介对输入数据进行数字签名。 私钥标签在配置文件中定义。 接口名称String AdvSignDataEx(String i_sigCert, String keyPasswd, byte i_inData, int i_algoType, int i_signType); 参数说明 入参说明i_sigCertIN:通信对方的证书,当需要通过 PA 获取签名算法时需输入 keyPasswdIN:私钥保护口令。 i_inDataIN:输入的待签名数据,二进制数据需要做编码处理。 i_algoTypeIN:签名算法 取值如:32772 - sha1RSA 32771 - md5RSA 0 -viaPA 等 sha1RSA、md5RSA 说明签名采用的是何种摘要算法签名算法 viaPA = 0,说明签名过程首先将连接到 PA(策略中心)获取相应的参数进 行后续的工作 i_signTypeIN:签名值类型 取值:0不包含原文的纯签名 1包含原文的符合 PKCS7 格式的数据 出参说明无 返回值输出的已编码的签名数据。 4.2.1.13 AdvVerifySign 功能简介对输入数据进行数字签名的验证。 接口名称boolean AdvVerifySign(String i_checkCert, byte i_clearText, String i_signature, int i_algoType, int i_signType); 参数说明 入参说明i_checkCert IN:验证所用的证书。 i_clearText IN:签名的原文。如签名值包含原文,请置为空即可。 i_signature IN:待验证的签名数据。 i_algoTypeIN:签名算法。如签名值不符合 PKCS7 标准,需要输入签 名算法。 取值如:32772 - sha1RSA 32771 - md5RSA 0 -viaPA 等 sha1RSA、md5RSA 说明签名采用的是何种摘要算法签名算法 viaPA 参数说明签名过程将连接到 PA(策略中心)获取相应的签名参数进 行后续的工作。 i_signTypeIN:签名值类型 取值:0不包含原文的纯签名 1包含原文的符合 PKCS7 格式的数据 出参说明无 返回值成功:true 失败:false 说明目前的用法是:当验证纯签名值时,需要输入签名算法或者通过策略解析 器获取匹配算法; 当验证 PKCS7 格式的签名内容时,由于本身自带了签名算法,因此没 有必要再次调用相应的策略解析器了。 4.2.1.14 AdvGenRandom 功能简介生成一定长度的随机数/对称密钥。 接口名称String AdvGenRandom(int len); 参数说明 入参说明lenIN: 指定的长度(字节数)。 出参说明无 返回值输出已编码的随机数/对称密钥。 4.2.1.15 AdvHashData 功能简介对输入数据进行哈希运算。 接口名称String AdvHashData(int hashAlgo, byte inData ) 参数说明 入参说明hashAlgoIN:哈希算法标识 ALGO_SHA1 32772 ALGO_MD5 32771 inDataIN: 输入数据信息。 出参说明无 返回值返回编码后的哈希值。 4.2.1.16 AdvSymmEncrypt 功能简介用指定产生的对称密钥 KEY 来加密数据。 接口名称String AdvSymmEncrypt(int i_symmAlgo, String i_symmkey, byte i_indata); 参数说明 入参说明i_symmAlgoIN: 对称算法标识。 例如: CALG_RC4 = 26625 CALG_3DES = 26115 CALG_33 = 9 i_symmKeyIN: 对称密钥,已编码。 i_inDataIN: 输入的原文。 出参说明无 返回值输出已编码后的密文。 4.2.1.17 AdvSymmDecrypt 功能简介用指定产生的对称密钥 KEY 来解密密文数据。 接口名称byte AdvSymmDecrypt(int i_symmAlgo, String i_symmkey, byte i_indata); 参数说明 入参说明i_symmAlgoIN: 对称算法标识。 例如: CALG_RC4 = 26625 CALG_3DES = 26115 CALG_33 = 9 i_symmKeyIN: 对称密钥,已编码。 i_inDataIN: 输入的密文,已编码。 出参说明无 返回值输出解密后的原文。 4.2.1.18 AdvGetCertFromLDAP 功能简介从 LDAP 服务器查询和获取用户证书。 接口名称String AdvGetCertFromLDAP(int i_searchType, int i_certType, String i_searchValue); 参数说明 入参说明i_searchTypeIN: 查找类型 取值范围为 1 按用户 ID 查询 2 按用户邮件地址查询 3 按证书 ID 查询 i_certTypeIN: 证书类型 取值范围为 1 加密证书 2 签名证书 此参数对于按证书 ID 查询无效 i_searchValueIN: 查询字符串信息 当 searchType 取值为 1 时,此参数为用户 ID 字符串 当 searchType 取值为 2 时,此参数为用户邮件字符串 当 searchType 取值为 3 时,此参数为证书 ID 字符串 出参说明无 返回值输出已编码后的证书信息。 4.2.1.19 AdvGetCRLFromLDAP 功能简介从 LDAP 服务器获取 CRL 列表信息。 接口名称String AdvGetCRLFromLDAP(); 参数说明 入参说明无 出参说明无 返回值输出已编码后的 CRL 列表信息。 4.2.1.20 AdvUploadCRL 功能简介上传 CRL 列表信息。 接口名称boolean AdvUploadCRL(String i_inCRL); 参数说明 入参说明i_inCRLIN: 输入的 CRL 列表信息,已编码。 出参说明无 返回值成功:true 失败:false 4.2.1.21 AdvReadFromFile 功能简介从本地读取文件内容。 接口名称String AdvReadFromFile(String inFile); 参数说明 入参说明inFileIN: 读取文件的路径 出参说明无 返回值输出已编码过的文件数据信息 4.2.1.22 AdvWriteToFile 功能简介将数据写入到本地文件。 接口名称boolean AdvWriteToFile(String filePath String writeData); 参数说明 入参说明filePathIN: 要保存的文件路径 writeDataIN:要写入文件的数据,已编码。 出参说明无 返回值成功:true 失败:false 4.2.1.23 AdvGetStamp 功能简介对输入数据加盖时间戳。 接口名称String AdvGetStamp(byte inData) 参数说明 入参说明inDataIN: 要加盖时间戳的数据。 出参说明无 返回值返回已编码的盖戳数据。 4.2.1.24 AdvVerifyStamp 功能简介验证时间戳,如果成功返回盖戳时间。 接口名称String AdvVerifyStamp(byte inData, String inStampData); 参数说明 入参说明inDataIN: 加盖时间戳的原文数据。 inStampDataIN: 时间戳签名数据 出参说明无 返回值返回盖戳时间字符串。 日期格式:03 09 02 17 27 30 年 月 日 时 分 秒 4.2.1.25 AdvGetAlgoFromPA 功能简介通过策略解析器从 PA 获取通信双方相应的策略证书,并加以匹配, 确定通信过程中使用的具体算法。 接口名称int AdvGetAlgoFromPA(String ownerCert, String otherCert, int algoKind, int priorityKind); 参数说明 入参说明ownerCertIN:自己的证书 otherCertIN:对方的证书 algoKindIN:要获取的密码算法的种类 1 表示非对称算法 2 表示对称算法 3 表示摘要算法 今后可以扩充 priorityKindIN:通信双方所属机构在通信中算法集匹配时的优先级别 0 对方优先级高 0 优先级相等 0 自已优先级高 出参说明无 返回值具体算法对应的值 9 表示 CALG_33 26625 表示 CALG_RC4 26115 表示 CALG_3DES 32772 表示 ALGO_SHA1 32771 表示 ALGO_MD5 100 表示 ALGO_RSA 101 表示 ALGO_ECC 0 表示没有匹配的算法,无法进行相应的通信 4.2.1.26 AdvGetAttrCertInfo 功能简介获取属性证书的详细信息。 接口名称int AdvGetAttrCertInfo( PKI_DATA i_acCert, ATTR_CERTINFO o_attrCertInfo ) 参数说明 入参说明i_acCertIN: 输入的属性证书。 出参说明o_attrCertInfo OUT:获得的证书信息。 返回值 = 0:成功。 0:失败,错误代码。 4.2.1.27 AdvGetPACertInfo 功能简介获取 PA 证书的详细信息。 接口名称int AdvGetPACertInfo(PKI_DATA i_paCert, PA_CERTINFO o_paCertInfo ) 参数说明 入参说明i_paCert IN:输入的 PA 证书。 出参说明o_paCertInfo OUT:获得的 PA 证书信息。 返回值 = 0:成功。 0:失败,错误代码。 4.2.1.28 AdvGetAttrCertListFromLDAP 功能简介按照查询条件获取属性证书。 接口名称PKI_DATA AdvGetAttrCertListFromLDAP( int searchType, String searchValue) 参数说明 入参说明searchTypeIN 查找类型 取值范围为 1 按属性证书对应的 PKC 证书用户 ID 搜索 2 按时间搜索 3 查找属性特权项 4 查找特权模板 searchValueIN 查找值 当 searchType 为 1 时,此参数为用户 ID 号。 当 searchType 为 2 时,此参数为开始时间以及结束时间。时间的形 式为“115-115“,精确到秒,年为 4 位,月、日、时、分、秒均为 2 位。分隔 符“-“之前为查询的起始时间,之后为查询的结束时间;如果未给出分隔符 “-“以及查询的结束时间,如“ 115“,则默认查询结束时间为当前系统时间 (注:查询的起始时间必须在当前系统时间之前)。 当 searchType 为 3 时,此参

温馨提示

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

评论

0/150

提交评论