android签名控件cfca scap版软件需求说明书_第1页
android签名控件cfca scap版软件需求说明书_第2页
android签名控件cfca scap版软件需求说明书_第3页
android签名控件cfca scap版软件需求说明书_第4页
android签名控件cfca scap版软件需求说明书_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、CFCA SCAP Android 标准版需求说明书中国金融认证中心2015 年 11 月 16 日:本文档的属于中国金融认证中心,任何人或组织,不得擅自修改、拷贝或以其它方式使用本文档中的内容。文档修订本文档会随时保持更新,请与中国金融认证中心索要最新版本。版本内容日期编写审核1.0初稿2014/12/202.0添加 Hash 签名2015/07/133.0添加时间戳接口2015/11/16目录引言1编写目的11.2.读者对象1需求说明1需求概述1功能需求1环境需求1字符编码规范2接口说明2类 SCAP2获取工具包版本2获取 SCAP 单例2获取所有23.1.4. 产生 PKCS10请求2导

2、入删除删除所有. 3. 3. 3修改 PIN 码3数字签名3数字信封加密43.1.11. 数字信封. 43.1.12. 导入双证5哈希签名/私钥运算5生成时间戳请求5在 PKCS7 签名中更新时间戳6将 PKCS1 签名封装成支持时间戳的 PKCS7 签名6类 CFCA3.2. 7数据 Base64 编码7序列号7颁发机构 DN7起始日期7截至日期7使用者 DN73.2.13.2.23.2.33.2.43.2.53.2.6使用者 CN7数据 二进制73.2.73.2.8类型(已弃用)7类型83.2.93.2.103.2.11KeyUsage83.3.异常类 CodeException81. 引

3、言1.1.编写目的本文档是根据 SCAP 相关项目客户需求说明书结合实际开发环境编写而成。旨在确认具体开发测试细节,并为之后的开发测试提供相关依据。1.2.读者对象CFCA 项目管理,控件开发、测试。2. 需求说明2.1.需求概述目前安全问题越来越受到重视,但是受限于接口、便携性等,安全在移动端的应用并未得到应有的发展。基于安全与公司业务的考量,CFCA 移动开发小组开发了安全即 SCAP 将数字安全应用在移动。2.2.功能需求需要支持 RSA-1024 、RSA2048、SM2及安装需要支持 PKCS#1、PKCS#7 带原文、PKCS#7 不带原文类型的签名算法签名哈希算法需要支持 SHA

4、1、SHA256、SM3需要支持数字信封加功能需要支持时间戳功能2.3.环境需求Android 2.3 6.02.4.字符编码规范所有字符型参数都采用 utf-8 编码。3. 接口说明3.1. 类 SCAP3.1.1. 获取工具包版本sic public String GetVer()版本号Returns:3.1.2. 获取 SCAP 单例public sic SCAP getInstance(Context context) throws CodeExceptionParameters:contextContextAndroid 上下文Returns:SCAP 对象实例3.1.3. 获取所有

5、public List gets()Returns:所有列表3.1.4. 产生 PKCS10请求public String generateCertReq(CFCAPublicConstant.CERT_TYPE certType, String pinCode,CFCAPublicConstant.CERT_SYS certSys) throws CodeExceptionParameters:certType: CFCAPublicConstant.CERT_TYPE类型pinCode:String用于保护数据的 PIN 码certSys:体系,SINGLE_CERT 为单证,CFCAPu

6、blicConstant.CERT_SYSDUAL_CERT 为双证Returns:PKCS10 请求的 Base64 编码3.1.5. 导入public void import(String strCert) throws CodeExceptionParameters:strCert:StringBase64 编码字符串3.1.6. 删除public void delete(CFCAcert) throws CodeExceptionParameters:cert:CFCA要删除的 CFCA对象3.1.7. 删除所有public void deleteAll() throws CodeEx

7、ception3.1.8. 修改 PIN 码public void changn(String oldPinCode, String newPinCode, CFCAcert) throwsCodeExceptionParameters: oldPinCode:String newPinCode:Stringcert: CFCA旧 PIN 码新 PIN 码要修改的 CFCA对象3.1.9. 数字签名public byte signMessage(String pinCode, byte srcData, CFCAPublicConstanSH_TYPEhashType, CFCAPublicC

8、onstant.SIGN_FORMAT signType, CFCAcert) throwsCodeExceptionParameters:pinCode:StringPIN 码srcData:byte签名原文签名 Hash 类型,RSA支持 SHA1 和hashType:CFCAPublicConstanSH_TYPESHA256;SM2仅支持 SM3,具体数据见 CFCAPublicConstant 类。签名格式,包括 P1,P7 带原文signType:CFCAPublicConstant.SIGN_FORMAT和 P7 不带原文,具体数据见 CFCAPublicConstant 类ce

9、rt: CFCAReturns:要进行签名的 CFCA签名结果对象注:数字签名会检查KeyUsage,双证时只有签名才可以数字签名。3.1.10.数字信封加密public String envelopeEncryptMessage(byte plaext, String,CFCAPublicConstant.SYMMETRIC_ALGORITHM alg) throws CodeExceptionParameters:String原文plaextStringBase64 编码格式的公钥CFCAPublicConstant.SYMMETRIC_ALGORITHM对称加密算法 RSA时可alg支持

10、 des3cbc 和 rc4 ; SM2会忽略该参数,具体数据见 CFCAPublicConstant 类Returns: Base64 编码格式的密文。注:数字信封加密会检查KeyUsage,双证时只有加密才可以。3.1.11.数字信封public String envelopeDecryptMessage(String pin, String ciphertext, String) throwsCodeExceptionParameters:PIN 码Base64 编码格式的密文Base64 编码字符串,该pin StringciphertextString必须是存在于 SCAP 的所有S

11、tring列表内,且和加密一致,否则失败。Returns: Base64 编码格式的原文注:数字信封会检查KeyUsage,双证时只有加密才可以。3.1.12.导入双证public void importDouble(String strSignCert, String strEncryptCert, String strPri)throws CodeExceptionParameters:签名Base64 编码字符串Base64 编码字符串私钥密文结构字符串strSignCertString加密strEncryptCertString加密strPriString3.1.13.哈希签名/私钥运

12、算public byte signHashData(String pinCode, byte hashData, CFCAPublicConstanSH_TYPEhashType, CFCAPublicConstant.SIGN_FORMATsignType, CFCAcert) throwsCodeExceptionParameters:pinCode:String hashData:bytePIN 码原文 Hash 值签名 Hash 类型,RSA支持 SHA1 和hashType:CFCAPublicConstanSH_TYPESHA256;SM2仅支持 SM3,具体数据见 CFCAPub

13、licConstant 类。签名格式,包括 P1、 P7 不带原signType:CFCAPublicConstant.SIGN_FORMAT文,不支持 P7 带原文。具体数据见 CFCAPublicConstant 类cert: CFCAReturns:要进行签名的 CFCA签名结果对象注:数字签名会检查KeyUsage,双证时只有签名才可以数字签名。3.1.14.生成时间戳请求public byte generateTimestampReq(CFCAPublicConstanSH_TYPE hashType, byte data)throws CodeExceptionParameters

14、:时间戳哈希类型,目前只支持 SHA1 和hashType:CFCAPublicConstanSH_TYPESHA256,具体数据见 CFCAPublicConstant 类。data: byteReturns:原文数据时间戳请求数据3.1.15.在 PKCS7 签名中更新时间戳public byte updateTimestampInPKCS7Signature(byte pkcs7Signature, bytetimestampResp) throws CodeExceptionParameters:PKCS7 签名二进制数据时间戳服务器响应数据, 将请求发送至服务器后,服务器pkcs7S

15、ignaturebytetimestampRespbyte端响应数据Returns:带时间戳的 PKCS7 签名数据3.1.16.将 PKCS1 签名封装成支持时间戳的 PKCS7 签名public byte encodePKCS7SignatureWithTimestamp(byte pkcs1Signature,byte,byte timestampResp,byte src,withSrc,CFCAPublicConstanSH_TYPE hash) throws CodeException Parameters:PKCS1 签名数据数据pkcs1Signaturebytebyte时间戳

16、服务器响应数据, 将请求发送至服务器后,服务器timestampRespbyte端响应数据原文数据srcbytePKCS7 带原文格式传入 true, 否则传入 falsewithSrc签名使用的哈希类型,支持 SHA1hashCFCAPublicConstanSH_TYPE时哈希必须为 SM3,RSA时哈希可以为 SHA1 SHA256SHA256 SM3,SM2Returns:带时间戳的 PKCS7 签名数据3.2.类 CFCA类只包含属性的 Get 方法,不支持 Set 方法。3.2.1数据 Base64 编码public String getCertEncode();3.2.2序列号public String getSerialNumber();3.2.3颁发机构 DNpublic String getIerDN();3.2.4起始日期public Date getNotBefore();3.2.5截至日期public Date getNotAfter();3.2.6使用者 DNpublic String getSubjectDN();3.2.7使用者 CNpublic String();3.2.8数据 二进制public byte getDercode();3.2.9类型(已弃用)获取类型请使用新的方法 getCertDeprecatedpu

温馨提示

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

评论

0/150

提交评论