TTSDK-PC/TTSDK-Android v1.1.0 发布

TTSDK-PC/TTSDK-Android v1.1.0 发布.

更新记录:

  • 重构代码,优化调整了几个不够好的接口(证书在线验证相关),对证书验证相关的类重命名,使得类名统一规范化。 详细改动如下:
    1. 摒弃了CertificateVerifierFactory类,摒弃了CertVerifier接口
    2. 重命名CertSVSVerifier类为TTSVSVerifier,重命名CertOCSPVerifier类为TTOCSPVerifier,将这两个类中的init(int greenPass)函数,重命名为setGreenPass(int greenPass)
    3. 请特别注意, 以上更改的后果是, 这个版本的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 下载】 进入下载页面