TTSDK-PC/TTSDK-Android v1.1.0 发布
TTSDK-PC/TTSDK-Android v1.1.0 发布.
更新记录:
- 重构代码,优化调整了几个不够好的接口(证书在线验证相关),对证书验证相关的类重命名,使得类名统一规范化。 详细改动如下:
- 摒弃了CertificateVerifierFactory类,摒弃了CertVerifier接口
- 重命名CertSVSVerifier类为TTSVSVerifier,重命名CertOCSPVerifier类为TTOCSPVerifier,将这两个类中的init(int greenPass)函数,重命名为setGreenPass(int greenPass)
- 请特别注意, 以上更改的后果是, 这个版本的TTSDK不再与上一个版本TTSDK二进制和源代码兼容. 如果您的代码使用了上个版本的TTSDK, 你可能需要调整您的代码. 对此我们深表歉意, 但是必要的技术调整得到更清晰的代码架构, 有利于整个项目将来的发展.
- 增加了本地验证证书的接口,可在网络环境受限无法在线远端验证证书状态的情况下,通过本地证书链验证证书的合法性. 需要特别提醒的是, 本地证书链验证不包括CRL, 所以只能算半个可靠的证书验证.
- 增加了获得证书颁发机构(CA)详细信息的接口,可获得证书颁发机构(CA)对应的中文名称、中文简称、英文全称、英文简称、地址、URL等信息. (目前仅限于参与试点的6家CA机构)
新增和调整后的接口的示例代码如下:
1、在线更新TTCertificateStore,将可信CA证书链更新到本地. 在下面的例子里, 可信CA证书链在本地的存储路径是”../../xx.store”:
String default_ca_certificate_store = "../../xx.store"; //构造本地可信证书库实例 TTCertificateStore certificateStore = TTCertificateStore.getInstance(default_ca_certificate_store); //本地可信证书可通过网络在线更新,注意:在调用save()函数之前,所执行update()只是更新内存中的数据。代码如下: certificateStore.update(); //如果想把更新后的数据保存在本地,请执行save()函数 certificateStore.save();
2、使用TTCertificateStore和TTLocalCertificateVerifier,本地验证证书:
//本地验证证书状态 String entityCert ="MII...";//待验证的证书 String default_ca_certificate_store = "../../xx.store"; //构造本地可信证书库实例 TTCertificateStore certificateStore = TTCertificateStore.getInstance(default_ca_certificate_store); if (certificateStore.isEmpty()) { //如果本地证书库是空的, 那么就需要更新. 此外, TTSDK还提供了一个certificateStore.getLastUpdateTime(), 用来获取上次更新的时间, //如果上次更新时间过去比较久了, 例如24小时, 那么最好也做一次update和save. certificateStore.update(); certificateStore.save(); } else { //如果上次更新时间过去比较久了, 例如24小时, 那么最好也做一次update和save. Date lastUpdateTime = certificateStore.getLastUpdateTime(); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.HOUR, -24); Date deadLine = calendar.getTime(); if (lastUpdateTime.before(deadLine)) { certificateStore.update(); certificateStore.save(); } } //构造本地证书验证器 TTLocalCertificateVerifier localVerifier = new TTLocalCertificateVerifier(certificateStore); //本地验证数字证书(校验证书链) boolean result = localVerifier.verify(entityCert); if (!result) { String errorCode = localVerifier.getErrorCode(); }
3、从用户证书, 获得该证书的证书颁发机构(即CA机构)信息, 目前仅限于参与试点的6家CA机构:
String signerCert = "MII.."; //签名证书 TTCACollection collection = TTCACollection.getInstance(); //获得CA机构信息 TTCA ttca = collection.getCA(signerCert); //获得CA机构的中文全称 String fullNameInChinese = ttca.getName(TTCA.zh_CN); //获得CA机构的中文简称 String shortNameInChinese = ttca.getShortName(TTCA.zh_CN); //获得CA机构的英文全称 String fullNameInEnglish=ttca.getName(TTCA.en_US); //获得CA机构的英文简称 String shortNameInEnglish=ttca.getShortName(TTCA.en_US); //获得CA机构的地址 String address = ttca.getAddress(); //获得CA机构的URL String url = ttca.getURL();
4、接口调整后,使用新接口在线验证证书状态:
//在线SVS方式验证证书状态 String entityCert = "MII..";//实体证书 //构造SVS方式的证书验证器 TTSVSVerifier svsVerifier =new TTSVSVerifier(); //验证证书 boolean result = svsVerifier.verify(entityCert); //如果验证结果失败,获取错误代码 if(!result){ String errorCode = svsVerifier.getErrorCode(); }
点击 【TTSDK 下载】 进入下载页面