优化异常
This commit is contained in:
@@ -23,9 +23,8 @@ public class TestHT {
|
||||
@Before
|
||||
public void before() {
|
||||
// 通过设置debug的属性开启debug,如果不设置则默认不打开
|
||||
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||
api = (SydApi4j) new SydApi4j().connect("172.16.18.59", 8889, null, 1000);
|
||||
// api = (SydApi4j) new SydApi4j().connect("192.168.0.66", 8889, null, 1000);
|
||||
System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||
api = (SydApi4j) new SydApi4j().connect("192.168.0.200", 8889, null, 1000);
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -300,6 +299,7 @@ public class TestHT {
|
||||
|
||||
@Test
|
||||
public void testDecryptDE54k() throws UnsupportedEncodingException {
|
||||
|
||||
String dn = "C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1";
|
||||
byte[] oData = new byte[4 * 1024];
|
||||
|
||||
@@ -310,6 +310,7 @@ public class TestHT {
|
||||
|
||||
RetWrap retWrap1 = api.decryptDEByDN(dn, CipherKey);
|
||||
printRetWrap(retWrap1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,162 +0,0 @@
|
||||
package com.sunyard.sydapi.test;
|
||||
|
||||
import com.sunyard.SydApi;
|
||||
import com.sunyard.cert.X509;
|
||||
import com.sunyard.inf.customize.SydSDNXApiImpl;
|
||||
import racal.sunyard.main.SydApi4j;
|
||||
|
||||
public class TestSDNXApi {
|
||||
|
||||
private static final String testCertNo = "C=cn,O=CFCA TEST CA,OU=NCS2,OU=Enterprises,CN=041@Z402451000010@ShanDong@00000001";
|
||||
//private static final String testCertNo = "C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1";
|
||||
//private static final String testCertNo = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||
//private static final String testData = "<MainBody><MsgId><Id>101557000040870201809190000000001</Id><CreDtTm>2018-09-19T10:13:39</CreDtTm></MsgId><Qryr><MbrId>101557</MbrId><BrId>000040870</BrId></Qryr><Rspnr><MbrId>201597</MbrId><BrId>000039754</BrId></Rspnr><BizQryInf><QryDt>2018-09-19</QryDt><QryId>00000001</QryId><Cnts>123456,测试</Cnts></BizQryInf></MainBody>";
|
||||
private static final String testData = "<MainBody><MsgId><Id>000000000000000201902231000012910</Id><CreDtTm>2019-02-23T09:29:19</CreDtTm></MsgId><CertNtfctnInf><ChngTp>CC00</ChngTp></CertNtfctnInf></MainBody>";
|
||||
private static final String testUser = "201597";
|
||||
//private static final String testUser = "8001";
|
||||
//private static final String testUser = "402030000011";
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
||||
SydApi api = null;
|
||||
System.out.println("\n\n----- connect -----");
|
||||
|
||||
// 建议从配置文件读取配置
|
||||
|
||||
// 单服务器测试使用
|
||||
// PoolManager.INSTANCE.createPool("default", "{\n" +
|
||||
// " \"mode\" : \"solo\", // (必填)\n" +
|
||||
// " \"oipc\" : \"com.sunyard.pool4sydapi.SydApiSDNXInPool\", " +
|
||||
// " \"ip\" : \"172.16.18.71\", // (必填)\n" +
|
||||
// " \"port\": 8889, // (必填)【数字】\n" +
|
||||
// " \"pwd\": \"\", // 没有就不填写此项\n" +
|
||||
// " \"timeout\": 1000 //【数字】不限超时时间就不填写此项\n" +
|
||||
// "}");
|
||||
|
||||
|
||||
// // 推荐配置
|
||||
// PoolManager.INSTANCE.createPool("default", "{\n" +
|
||||
// " \"mode\" : \"round-robin\", // (必填)\n" +
|
||||
// " \"oipc\" : \"com.sunyard.pool4sydapi.SydApiSDNXInPool\", // (必填)\n" +
|
||||
// " \"ips\" : [ // (必填)\n" +
|
||||
// " \"172.16.18.69\",\n" +
|
||||
// " \"172.16.18.70\"\n" +
|
||||
// " ],\n" +
|
||||
// " \"port\": 8889, //(必填)【数字】\n" +
|
||||
// " \"pwd\": \"\", //【数字】没有就不填写此项\n" +
|
||||
// " \"timeout\": 1000 , //【数字】【数字】链接和响应超时时限,不限超时时间就不填写此项\n" +
|
||||
// " \"connectTimeout\" : 1000, //【数字】【数字】链接超时时限,如果没有传递,但是存在 timeout 就等于 timeout 的值\n" +
|
||||
// " \"waitRecvTimeout\" : 1000, //【数字】【数字】响应超时时限,如果没有传递,但是存在 timeout 就等于 timeout 的值\n" +
|
||||
// " \"maxContinuousErrorTime\" : 3, //【数字】 单台加密机连续出错次数\n" +
|
||||
// " \"recoveryTime\" : 300000, //【数字】 恢复时间,单位毫秒,默认 5 分钟,最大 2^63\n" +
|
||||
// " \"keepAlive\" : 1, //【数字】 保持链接个数,默认是链接池个数的一半\n" +
|
||||
// " \"maxAliveTime\" : 300000000, //【数字】 最大生存时间\n" +
|
||||
// " \"maxIdleTime\" : 300000 , //【数字】 最大空闲时间,默认 5 分钟,最大 2^63\n" +
|
||||
// " \"checkMode\" : \"before/after/deamon\", // 链接检测模式,使用前/使用后/后台轮询\n" +
|
||||
// " \"checkGap\" : 300000 // 后台轮询检测间隔\n" +
|
||||
// "}");
|
||||
|
||||
// 自定义配置
|
||||
// PoolManager.INSTANCE.createPool("default", "{\n" +
|
||||
// " \"mode\" : \"weighted-round-robin\", // (必填)\n" +
|
||||
// " \"oipc\" : \"com.sunyard.pool4sydapi.SydApiSDNXInPool\", // (必填)\n" +
|
||||
// " \"ips\" : { // (必填)\n" +
|
||||
// " \"172.16.18.69\" : 1,\n" +
|
||||
// " \"172.16.18.70\" : 3\n" +
|
||||
// " },\n" +
|
||||
// " \"port\": 8889, //(必填)【数字】\n" +
|
||||
// " \"pwd\": \"\", //【数字】没有就不填写此项\n" +
|
||||
// " \"timeout\": 1000 , //【数字】【数字】链接和响应超时时限,不限超时时间就不填写此项\n" +
|
||||
// " \"connectTimeout\" : 1000, //【数字】【数字】链接超时时限,如果没有传递,但是存在 timeout 就等于 timeout 的值\n" +
|
||||
// " \"waitRecvTimeout\" : 1000, //【数字】【数字】响应超时时限,如果没有传递,但是存在 timeout 就等于 timeout 的值\n" +
|
||||
// " \"maxContinuousErrorTime\" : 3, //【数字】 单台加密机连续出错次数\n" +
|
||||
// " \"recoveryTime\" : 300000, //【数字】 恢复时间,单位毫秒,默认 5 分钟,最大 2^63\n" +
|
||||
// " \"keepAlive\" : 1, //【数字】 保持链接个数,默认是链接池个数的一半\n" +
|
||||
// " \"maxAliveTime\" : 300000000, //【数字】 最大生存时间\n" +
|
||||
// " \"maxIdleTime\" : 300000 , //【数字】 最大空闲时间,默认 5 分钟,最大 2^63\n" +
|
||||
// " \"checkMode\" : \"before/after/deamon\", // 链接检测模式,使用前/使用后/后台轮询\n" +
|
||||
// " \"checkGap\" : 300000 // 后台轮询检测间隔\n" +
|
||||
// "}");
|
||||
|
||||
|
||||
try {
|
||||
|
||||
|
||||
//热备模式连接
|
||||
SydApi4j.SYD_Set_Parameter_HA("unkown", "122.224.86.107", 8889, 1000);
|
||||
api = new SydApi4j();
|
||||
|
||||
|
||||
// 链接池和负载均衡模式
|
||||
//api = (SydSDNXApiImpl) PoolManager.INSTANCE.getPool().get().getOrigin();
|
||||
|
||||
System.out.println("连接加密机成功");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
|
||||
|
||||
//用证书DN签名
|
||||
//case1(api);
|
||||
|
||||
//根据机构号验签,上传并返回证书内容,并更新机构号
|
||||
case2(api);
|
||||
|
||||
|
||||
//裸签名
|
||||
//case3(api);
|
||||
|
||||
//验签
|
||||
//case4(api);
|
||||
|
||||
} finally {
|
||||
System.out.println("\n\n----- disconnect -----");
|
||||
api.disconnect();
|
||||
}
|
||||
|
||||
System.out.println("执行结束\n\n");
|
||||
}
|
||||
|
||||
public static void case1(SydSDNXApiImpl api) {
|
||||
|
||||
System.out.println("\n\n----- 签名 基础接口原始数据模式 -----");
|
||||
String sign = api.detachedSign(SydApi4j.DATA_ORIGIN, testData.getBytes(), testCertNo);
|
||||
System.out.println("\t签名结果: " + sign);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//需要上传验签结果,测试的时候签名和验签不能同时进行,签名以后要删除数据库数据才可以验签(仅限测试可以这样操作)
|
||||
public static void case2(SydApi api) {
|
||||
|
||||
System.out.println("\n\n----- 验签 ,上传并返回证书内容,并更新机构号 -----");
|
||||
|
||||
String sign = "MIIEYQYKKoEcz1UGAQQCAqCCBFEwggRNAgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIIDUjCCA04wggLyoAMCAQICBUCEF1MkMAwGCCqBHM9VAYN1BQAwXDELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEbMBkGA1UEAwwSQ0ZDQSBBQ1MgU00yIE9DQTMxMB4XDTE4MDExNzAxMTExMFoXDTIzMDExNzAxMTExMFowgYIxCzAJBgNVBAYTAkNOMRswGQYDVQQKDBJDRkNBIEFDUyBTTTIgT0NBMzExDjAMBgNVBAsMBVNIQ1BFMRkwFwYDVQQLDBBPcmdhbml6YXRpb25hbC0xMSswKQYDVQQDDCIwNTFA5LiK5rW356Wo5o2u5Lqk5piT5omAQEFBQUFBQUAxMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEz79HajSQLou2kkL6n26pCKkcKcbHTWR6MbArRQruWY+WDiyPhRaYLU4W6d8wBTDTOS6T5dCtSNZBxeb5qoeeNaOCAXYwggFyMGwGCCsGAQUFBwEBBGAwXjAoBggrBgEFBQcwAYYcaHR0cDovL29jc3AuY2ZjYS5jb20uY24vb2NzcDAyBggrBgEFBQcwAoYmaHR0cDovL2NybC5jZmNhLmNvbS5jbi9vY2EzMS9vY2EzMS5jZXIwHwYDVR0jBBgwFoAUCNjRJsRIfZzsrJjp8X9iuYDOqUUwDAYDVR0TAQH/BAIwADBIBgNVHSAEQTA/MD0GCGCBHIbvKgEEMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTQuaHRtMDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwuY2ZjYS5jb20uY24vb2NhMzEvU00yL2NybDcyLmNybDAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFIzDvi38AZLlWA/Wqfk93ZPe7qNgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAMBggqgRzPVQGDdQUAA0gAMEUCICDVyelEL86xbj0mAeMl3knQD0n2QKERtni/e82bQz/nAiEAjq5SKIaVJu9T/lkds3QQfgLpBX65Rwj2Scgc7cC2dVcxgdMwgdACAQEwZTBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIEFDUyBTTTIgT0NBMzECBUCEF1MkMAwGCCqBHM9VAYMRBQAwDQYJKoEcz1UBgi0BBQAERzBFAiEA03ogUebmqNyLjD5/OXr4gSdVQfqp3yqrVVPgRmGPy1QCIBkHrzpSxw/ZPloL+t1GHlEp2rW7qVgy966/lQqE7UVH";
|
||||
X509 x509 = api.SYD_Get_X509_CertInfo_HA(testData.getBytes(), sign);
|
||||
System.out.println("验签结果" + x509);
|
||||
}
|
||||
|
||||
|
||||
public static void case3(SydSDNXApiImpl api) {
|
||||
|
||||
System.out.println("\n\n----- 裸签名 -----");
|
||||
String sign = api.nakedSign(testData.getBytes(), testCertNo);
|
||||
System.out.println("签名结果 " + sign);
|
||||
}
|
||||
|
||||
public static void case4(SydSDNXApiImpl api) {
|
||||
|
||||
System.out.println("\n\n----- 裸签名 -----");
|
||||
String sign = api.nakedSign(testData.getBytes(), testCertNo);
|
||||
System.out.println("签名结果 " + sign);
|
||||
//String sign = "dFOUuU+JVNEZO8494MV+xtPuMVhEjnXlilHlymK9Cz/jQ3m+lRKTbv4tfyo5Eb7MM7lqQi6cdwKZ/CLnkOa+Vsye4DDYYSweqsraLwdtrVcc1sw2KDHeJUao2SXIhdhgxSw+puiOCDq/4FsJADdnYprIp+GSLfjj7tuhbBBb0JCV6rnTutIozq2QDPQKEspzMxQ2TtbVQezfL3uMA5GuYNdJYz4eAasQtxTQS5dhe3/CaWbjBeL2kKhsvuMbP6wsx2HeuXvaf99OEBkyXq2fFPJtuU7WB4SIYKN1wI0BK/IMa0ULj1Q1SBakd5+iO8ckrokJJ6E2JH3Nd/mT+5DdRg==";
|
||||
|
||||
System.out.println("\n\n----- 验签 -----");
|
||||
boolean pass = api.SYD_NakedVerify(testData.getBytes(), sign, testUser);
|
||||
System.out.println("验签结果 " + pass);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user