证书导入结果修改
This commit is contained in:
parent
b4d3c1d193
commit
4372362086
@ -50,7 +50,7 @@ public class Test4Jemter extends AbstractJavaSamplerClient {
|
|||||||
arguments.addArgument("orgData", "12345678");
|
arguments.addArgument("orgData", "12345678");
|
||||||
arguments.addArgument("ip", "172.1.41.139");
|
arguments.addArgument("ip", "172.1.41.139");
|
||||||
arguments.addArgument("ip2", "172.1.41.96");
|
arguments.addArgument("ip2", "172.1.41.96");
|
||||||
// arguments.addArgument("port", "8891");
|
arguments.addArgument("port", "8891");
|
||||||
// arguments.addArgument("ip2", "172.16.17.161");
|
// arguments.addArgument("ip2", "172.16.17.161");
|
||||||
arguments.addArgument("dataLength", "1024");
|
arguments.addArgument("dataLength", "1024");
|
||||||
arguments.addArgument("type", "1");
|
arguments.addArgument("type", "1");
|
||||||
@ -71,7 +71,7 @@ public class Test4Jemter extends AbstractJavaSamplerClient {
|
|||||||
oData = context.getParameter("orgData");
|
oData = context.getParameter("orgData");
|
||||||
ip = context.getParameter("ip");
|
ip = context.getParameter("ip");
|
||||||
ip2 = context.getParameter("ip2");
|
ip2 = context.getParameter("ip2");
|
||||||
// port = Integer.parseInt(context.getParameter("8891"));
|
port = context.getIntParameter("8891");
|
||||||
// ip2 = context.getParameter("ip2");
|
// ip2 = context.getParameter("ip2");
|
||||||
dataLength = context.getIntParameter("dataLength");
|
dataLength = context.getIntParameter("dataLength");
|
||||||
type = context.getIntParameter("type");
|
type = context.getIntParameter("type");
|
||||||
@ -84,7 +84,7 @@ public class Test4Jemter extends AbstractJavaSamplerClient {
|
|||||||
//
|
//
|
||||||
// SydApiBuilder builder = new SydApiBuilder().setIp(ip);
|
// SydApiBuilder builder = new SydApiBuilder().setIp(ip);
|
||||||
// final SydApi4j api = (SydApi4j) builder.build();
|
// final SydApi4j api = (SydApi4j) builder.build();
|
||||||
SydApi4j.SYD_Set_Parameter_HA(ip, ip2, 8889, 1000);
|
SydApi4j.SYD_Set_Parameter_HA(ip, ip2, port, 2000);
|
||||||
final SydApi4j api1 = (SydApi4j) new SydApi4j();
|
final SydApi4j api1 = (SydApi4j) new SydApi4j();
|
||||||
return api1;
|
return api1;
|
||||||
}
|
}
|
||||||
@ -139,6 +139,7 @@ public class Test4Jemter extends AbstractJavaSamplerClient {
|
|||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
// api.get().detachedSign(1, orgData, SM2dn);
|
// api.get().detachedSign(1, orgData, SM2dn);
|
||||||
|
//p7 detached签名
|
||||||
api.get().detachedSign(orgData, SM2dn);
|
api.get().detachedSign(orgData, SM2dn);
|
||||||
sr.setResponseCodeOK();
|
sr.setResponseCodeOK();
|
||||||
//sr.setResponseData(detSign1, StandardCharsets.UTF_8.displayName());
|
//sr.setResponseData(detSign1, StandardCharsets.UTF_8.displayName());
|
||||||
@ -146,6 +147,7 @@ public class Test4Jemter extends AbstractJavaSamplerClient {
|
|||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
// api.get().detachedVerify(1, orgData, sign);
|
// api.get().detachedVerify(1, orgData, sign);
|
||||||
|
//p7 detached验签
|
||||||
api.get().detachedVerify(orgData, detachedSign);
|
api.get().detachedVerify(orgData, detachedSign);
|
||||||
sr.setResponseCodeOK();
|
sr.setResponseCodeOK();
|
||||||
//sr.setResponseData(String.valueOf(detV1), StandardCharsets.UTF_8.displayName());
|
//sr.setResponseData(String.valueOf(detV1), StandardCharsets.UTF_8.displayName());
|
||||||
|
|||||||
55
src/main/java/com/sunyard/entity/ImportResult.java
Normal file
55
src/main/java/com/sunyard/entity/ImportResult.java
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
package com.sunyard.entity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 证书导入结果封装类
|
||||||
|
*/
|
||||||
|
public class ImportResult {
|
||||||
|
/** 成功状态码 */
|
||||||
|
public static final int CODE_SUCCESS = 2000;
|
||||||
|
/** 部分成功状态码 */
|
||||||
|
public static final int CODE_PARTIAL_SUCCESS = 2001;
|
||||||
|
/** 完全失败状态码 */
|
||||||
|
public static final int CODE_COMPLETE_FAILURE = 2002;
|
||||||
|
/** 参数错误状态码 */
|
||||||
|
public static final int CODE_INVALID_PARAM = 4001;
|
||||||
|
|
||||||
|
private int code; //返回码
|
||||||
|
private String certDn; // 证书主题(DN)
|
||||||
|
private List<String> errCnt; // 详细错误列表(每个失败的服务器)
|
||||||
|
|
||||||
|
// 构造方法
|
||||||
|
public ImportResult() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ImportResult(int code, String certDn) {
|
||||||
|
this.code = code;
|
||||||
|
this.certDn = certDn;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
public int getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(int code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
public String getCertDn() {
|
||||||
|
return certDn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCertDn(String certDn) {
|
||||||
|
this.certDn = certDn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getErrCnt() {
|
||||||
|
return errCnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrCnt(List<String> errCnt) {
|
||||||
|
this.errCnt = errCnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package racal.sunyard.main;
|
package racal.sunyard.main;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.date.StopWatch;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
@ -10,6 +11,7 @@ import com.sunyard.SydApi;
|
|||||||
import com.sunyard.SydApiException;
|
import com.sunyard.SydApiException;
|
||||||
import com.sunyard.cert.X509;
|
import com.sunyard.cert.X509;
|
||||||
import com.sunyard.constant.CertUsage;
|
import com.sunyard.constant.CertUsage;
|
||||||
|
import com.sunyard.entity.ImportResult;
|
||||||
import com.sunyard.entity.Struct;
|
import com.sunyard.entity.Struct;
|
||||||
import com.sunyard.log.ILogFactory;
|
import com.sunyard.log.ILogFactory;
|
||||||
import com.sunyard.log.ILogger;
|
import com.sunyard.log.ILogger;
|
||||||
@ -55,6 +57,7 @@ import java.security.cert.X509Certificate;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.Lock;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
@ -718,14 +721,14 @@ public class SydApi4j implements SydApi {
|
|||||||
synchronized(reqLock) {
|
synchronized(reqLock) {
|
||||||
byte[] sentData = this.syncSend(data);
|
byte[] sentData = this.syncSend(data);
|
||||||
readData = this.syncRead(sentData);
|
readData = this.syncRead(sentData);
|
||||||
break;
|
return readData;
|
||||||
}
|
}
|
||||||
} catch (SydApiException e) {
|
} catch (SydApiException e) {
|
||||||
handleNetworkFailure(e, retryCount, maxRetries); // 统一处理网络故障
|
handleNetworkFailure(e, retryCount, maxRetries); // 统一处理网络故障
|
||||||
retryCount ++;
|
retryCount ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return readData;
|
throw new SydApiException("加密机连接失败,主备节点均不可用", -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] SYD_NakedSign_OuterHash(byte[] orgData, String sCertDN) {
|
public byte[] SYD_NakedSign_OuterHash(byte[] orgData, String sCertDN) {
|
||||||
@ -1346,7 +1349,7 @@ public class SydApi4j implements SydApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String importCertToServers(List<String> addressList, int timeout, String cert, String bkCode, String snmpConfig) {
|
public ImportResult importCertToServers(List<String> addressList, int timeout, String cert, String bkCode, String snmpConfig) {
|
||||||
if (null == addressList || addressList.isEmpty()) {
|
if (null == addressList || addressList.isEmpty()) {
|
||||||
throw new IllegalArgumentException("签名服务器地址不能为空");
|
throw new IllegalArgumentException("签名服务器地址不能为空");
|
||||||
}
|
}
|
||||||
@ -1380,6 +1383,9 @@ public class SydApi4j implements SydApi {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("导入证书格式错误!");
|
log.warn("导入证书格式错误!");
|
||||||
}
|
}
|
||||||
|
ImportResult importResult = new ImportResult();
|
||||||
|
importResult.setCertDn(dn);
|
||||||
|
Gson gson = new Gson();
|
||||||
if (!failures.isEmpty()) {
|
if (!failures.isEmpty()) {
|
||||||
//记录失败日志
|
//记录失败日志
|
||||||
stringBuilder.append("行号:").append(bkCode).append("\n").append("DN:").append(dn)
|
stringBuilder.append("行号:").append(bkCode).append("\n").append("DN:").append(dn)
|
||||||
@ -1390,7 +1396,6 @@ public class SydApi4j implements SydApi {
|
|||||||
.map(Object::toString)
|
.map(Object::toString)
|
||||||
.collect(Collectors.joining(",")) + "]";
|
.collect(Collectors.joining(",")) + "]";
|
||||||
String message = "支付签名证书导入失败!签名服务器地址:" + result + "| 证书对应行号:[" + bkCode + "]";
|
String message = "支付签名证书导入失败!签名服务器地址:" + result + "| 证书对应行号:[" + bkCode + "]";
|
||||||
Gson gson = new Gson();
|
|
||||||
Map<String, String> map = gson.fromJson(snmpConfig, new TypeToken<Map<String, String>>() {}.getType());
|
Map<String, String> map = gson.fromJson(snmpConfig, new TypeToken<Map<String, String>>() {}.getType());
|
||||||
try (SnmpTrapSender sender = new SnmpTrapSender(map)) {
|
try (SnmpTrapSender sender = new SnmpTrapSender(map)) {
|
||||||
sender.sendTrap(message, 2);
|
sender.sendTrap(message, 2);
|
||||||
@ -1398,12 +1403,16 @@ public class SydApi4j implements SydApi {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("snmp告警消息发送失败:{}", e.getMessage());
|
log.warn("snmp告警消息发送失败:{}", e.getMessage());
|
||||||
}
|
}
|
||||||
// Map<String, String> msgMap = new HashMap<>();
|
importResult.setErrCnt(failures);
|
||||||
// msgMap.put("alarmMsg", message);
|
if (failures.size() == addressList.size()) {
|
||||||
// msgMap.put("certDn", dn);
|
importResult.setCode(ImportResult.CODE_COMPLETE_FAILURE);
|
||||||
// throw new SydApiException(gson.toJson(msgMap) ,56300, true);
|
} else {
|
||||||
|
importResult.setCode(ImportResult.CODE_PARTIAL_SUCCESS);
|
||||||
}
|
}
|
||||||
return dn;
|
} else {
|
||||||
|
importResult.setCode(ImportResult.CODE_SUCCESS);
|
||||||
|
}
|
||||||
|
return importResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
private TaskContext<String> createTaskContext(String address, int timeout, String cert) {
|
private TaskContext<String> createTaskContext(String address, int timeout, String cert) {
|
||||||
@ -2362,19 +2371,19 @@ public class SydApi4j implements SydApi {
|
|||||||
// 优先尝试主节点
|
// 优先尝试主节点
|
||||||
if (!usingBackup.get()) {
|
if (!usingBackup.get()) {
|
||||||
if (tryConnect(ha_ip1)) {
|
if (tryConnect(ha_ip1)) {
|
||||||
// System.out.println("连接到主节点: " + ha_ip1);
|
log.info("连接到主节点,ip:{}", ha_ip1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 连接到备节点
|
// 连接到备节点
|
||||||
if (tryConnect(ha_ip2)) {
|
if (tryConnect(ha_ip2)) {
|
||||||
// System.out.println("连接到备节点: " + ha_ip2);
|
log.info("连接到备节点,ip:{}", ha_ip2);
|
||||||
usingBackup.set(true);
|
usingBackup.set(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new SydApiException("所有节点均不可用", -100);
|
throw new SydApiException("节点连接异常", -100);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2396,7 +2405,7 @@ public class SydApi4j implements SydApi {
|
|||||||
this.socket = newSocket;
|
this.socket = newSocket;
|
||||||
return true;
|
return true;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("节点连接失败: " + ip + " - " + e.getMessage());
|
log.info("节点连接失败,ip:{}/exception:{}", ip, e.getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2405,6 +2414,9 @@ public class SydApi4j implements SydApi {
|
|||||||
if (retryCount > maxRetries) {
|
if (retryCount > maxRetries) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
StopWatch stopWatch = new StopWatch();
|
||||||
|
stopWatch.start();
|
||||||
|
log.info("socket收发信息异常,准备重试:{}/当前重试:{}次", e.getMessage(),retryCount + 1);
|
||||||
// System.out.printf("线程[%s]网络故障,尝试切换节点 (重试: %d/%d)%n",
|
// System.out.printf("线程[%s]网络故障,尝试切换节点 (重试: %d/%d)%n",
|
||||||
// Thread.currentThread().getName(), retryCount + 1, maxRetries);
|
// Thread.currentThread().getName(), retryCount + 1, maxRetries);
|
||||||
|
|
||||||
@ -2413,20 +2425,20 @@ public class SydApi4j implements SydApi {
|
|||||||
|
|
||||||
if (usingBackup.compareAndSet(currentState, newState)) {
|
if (usingBackup.compareAndSet(currentState, newState)) {
|
||||||
String targetIp = newState ? ha_ip2 : ha_ip1;
|
String targetIp = newState ? ha_ip2 : ha_ip1;
|
||||||
// System.out.println("全局节点切换: " + (currentState ? "备机" : "主机") + "→" +
|
|
||||||
// (newState ? "备机" : "主机"));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
safeClose();
|
safeClose();
|
||||||
connect(targetIp, ha_port, ha_timeout);
|
connect(targetIp, ha_port, ha_timeout);
|
||||||
// System.out.println("线程[" + Thread.currentThread().getName() + "]连接重建成功");
|
// System.out.println("故障节点切换成功,当前使用:" + targetIp);
|
||||||
|
log.info("故障节点切换成功,当前使用ip:{}", targetIp);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// System.out.println("线程[" + Thread.currentThread().getName() + "]节点切换失败: " + ex.getMessage());
|
|
||||||
usingBackup.compareAndSet(newState, currentState);
|
usingBackup.compareAndSet(newState, currentState);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
System.err.println("线程[" + Thread.currentThread().getName() + "]节点已被其他线程切换,使用新节点");
|
System.err.println("线程[" + Thread.currentThread().getName() + "]节点已被其他线程切换,使用新节点");
|
||||||
}
|
}
|
||||||
|
stopWatch.stop();
|
||||||
|
log.info("节点切换时间:{}", stopWatch.getTotalTimeMillis());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void safeClose() {
|
private void safeClose() {
|
||||||
|
|||||||
@ -2,7 +2,9 @@ package sample;
|
|||||||
|
|
||||||
import cn.hutool.core.date.StopWatch;
|
import cn.hutool.core.date.StopWatch;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.sunyard.SydApiException;
|
import com.sunyard.SydApiException;
|
||||||
|
import com.sunyard.entity.ImportResult;
|
||||||
import com.sunyard.proto.Util;
|
import com.sunyard.proto.Util;
|
||||||
import com.sunyard.util.CertUtil;
|
import com.sunyard.util.CertUtil;
|
||||||
import com.sunyard.util.IpLockUtils;
|
import com.sunyard.util.IpLockUtils;
|
||||||
@ -11,6 +13,7 @@ import org.junit.Before;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import racal.sunyard.main.SydApi4j;
|
import racal.sunyard.main.SydApi4j;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
@ -23,12 +26,12 @@ public class Test4NongxinCW {
|
|||||||
|
|
||||||
final String SM2dn = "C=CN,ST=zz,L=zz,O=zzz,CN=zzzzz";
|
final String SM2dn = "C=CN,ST=zz,L=zz,O=zzz,CN=zzzzz";
|
||||||
|
|
||||||
byte[] orgData = new byte[100];
|
byte[] orgData = new byte[1024];
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void before() {
|
public void before() {
|
||||||
//主备调用接口
|
//主备调用接口
|
||||||
SydApi4j.SYD_Set_Parameter_HA("172.1.41.139", "172.1.41.96", 8889, 1000);
|
SydApi4j.SYD_Set_Parameter_HA("172.1.41.139", "172.1.41.96", 8889, 3000);
|
||||||
api = (SydApi4j) new SydApi4j();
|
api = (SydApi4j) new SydApi4j();
|
||||||
// api.startHeartbeat();
|
// api.startHeartbeat();
|
||||||
|
|
||||||
@ -53,12 +56,17 @@ public class Test4NongxinCW {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHA() {
|
public void testHA() {
|
||||||
|
// byte[] nakedSign1 = api.SYD_NakedSignAll(4,orgData, SM2dn);
|
||||||
for (int i = 0; i < 100000; i++) {
|
// System.out.println("SM2大数据裸签:"+ Util.bytes2HexString(nakedSign1));
|
||||||
// byte[] nakedSign = api.SYD_NakedSign(orgData,SM2dn);
|
// boolean nakedVerify1 = api.SYD_NakedVerifyAll(4,orgData, nakedSign1, SM2dn);
|
||||||
|
// System.out.println("SM2数据验签:"+nakedVerify1 );
|
||||||
|
for (int i = 0; i < 10000; i++) {
|
||||||
|
byte[] nakedSign = api.SYD_NakedSign(orgData,SM2dn);
|
||||||
// System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign));
|
// System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign));
|
||||||
byte[] nakedSign1 = api.SYD_NakedSignAll(4,orgData, SM2dn);
|
byte[] nakedSign1 = api.SYD_NakedSignAll(4,orgData, SM2dn);
|
||||||
System.out.println("SM2大数据裸签:"+ Util.bytes2HexString(nakedSign1));
|
// System.out.println("SM2大数据裸签:"+ Util.bytes2HexString(nakedSign1));
|
||||||
|
boolean nakedVerify1 = api.SYD_NakedVerifyAll(4,orgData, nakedSign1, SM2dn);
|
||||||
|
// System.out.println("SM2数据验签:"+nakedVerify1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,26 +75,33 @@ public class Test4NongxinCW {
|
|||||||
// 配置HA参数
|
// 配置HA参数
|
||||||
// SydApi4j.SYD_Set_Parameter_HA("172.1.41.139", "172.1.41.96", 8889, 1000);
|
// SydApi4j.SYD_Set_Parameter_HA("172.1.41.139", "172.1.41.96", 8889, 1000);
|
||||||
|
|
||||||
// 创建20个线程并发操作API
|
// 创建200个线程并发操作API
|
||||||
ExecutorService executor = Executors.newFixedThreadPool(20);
|
ExecutorService executor = Executors.newFixedThreadPool(100);
|
||||||
List<Future<?>> futures = new ArrayList<>();
|
List<Future<?>> futures = new ArrayList<>();
|
||||||
|
|
||||||
// 模拟主节点故障
|
|
||||||
CountDownLatch startLatch = new CountDownLatch(1);
|
CountDownLatch startLatch = new CountDownLatch(1);
|
||||||
|
|
||||||
for (int i = 0; i < 200; i++) {
|
for (int i = 0; i < 100; i++) {
|
||||||
futures.add(executor.submit(() -> {
|
futures.add(executor.submit(() -> {
|
||||||
try {
|
// try {
|
||||||
startLatch.await(); // 等待统一开始
|
// startLatch.await(); // 等待统一开始
|
||||||
} catch (InterruptedException e) {
|
// } catch (InterruptedException e) {
|
||||||
throw new RuntimeException(e);
|
// throw new RuntimeException(e);
|
||||||
}
|
// }
|
||||||
|
|
||||||
SydApi4j api2 = new SydApi4j();
|
SydApi4j api2 = new SydApi4j();
|
||||||
|
|
||||||
for (int j = 0; j < 1000; j++) {
|
for (int j = 0; j < 1000; j++) {
|
||||||
|
StopWatch stopWatch = new StopWatch();
|
||||||
|
stopWatch.start();
|
||||||
byte[] nakedSign = api2.SYD_NakedSign(orgData,SM2dn);
|
byte[] nakedSign = api2.SYD_NakedSign(orgData,SM2dn);
|
||||||
System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign));
|
stopWatch.stop();
|
||||||
|
System.out.println("p1签名耗时---:" + stopWatch.getLastTaskTimeMillis() + "ms");
|
||||||
|
stopWatch.start();
|
||||||
|
String sign = "304502204ACEE7FA06644B6EAE62E5FBF824B6ED8D4432D5CE52580381ECF3570DE032F4022100F30DF2B902A3C34E183498C14565D03C9F28FD1BCCDFB557B52996539BCCF58F";
|
||||||
|
boolean ver = api2.SYD_NakedVerify(orgData,nakedSign, SM2dn);
|
||||||
|
stopWatch.stop();
|
||||||
|
System.out.println("p1验签耗时:" + stopWatch.getLastTaskTimeMillis() + "ms");
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -113,13 +128,13 @@ public class Test4NongxinCW {
|
|||||||
// byte[] nakedSign1 = api.SYD_NakedSign(SM2dn, (byte[])null, orgData);
|
// byte[] nakedSign1 = api.SYD_NakedSign(SM2dn, (byte[])null, orgData);
|
||||||
// System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign1));
|
// System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign1));
|
||||||
orgData = new byte[1024];
|
orgData = new byte[1024];
|
||||||
|
String ss = "";
|
||||||
//裸签
|
//裸签
|
||||||
byte[] nakedSign = api.SYD_NakedSign(orgData,SM2dn);
|
byte[] nakedSign = api.SYD_NakedSign(orgData,ss);
|
||||||
System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign));
|
System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign));
|
||||||
//裸签验签
|
//裸签验签
|
||||||
boolean ver = api.SYD_NakedVerify(orgData,nakedSign, SM2dn);
|
// boolean ver = api.SYD_NakedVerify(orgData,nakedSign, SM2dn);
|
||||||
System.out.println("SM2验签:"+ ver);
|
// System.out.println("SM2验签:"+ ver);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -136,14 +151,18 @@ public class Test4NongxinCW {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void detSign(){
|
public void detSign(){
|
||||||
orgData = new byte[4096];
|
orgData = new byte[1024];
|
||||||
|
|
||||||
|
for (int i = 0; i < 10000; i++) {
|
||||||
//detach签名
|
//detach签名
|
||||||
String detachedSign = api.detachedSign(orgData, SM2dn);
|
String detachedSign = api.detachedSign(orgData, SM2dn);
|
||||||
System.out.println("detach签名:"+ detachedSign);
|
System.out.println("detach签名:"+ detachedSign);
|
||||||
|
|
||||||
//detach验签
|
//detach验签
|
||||||
boolean ver = api.detachedVerify(orgData, detachedSign);
|
boolean ver = api.detachedVerify(orgData, detachedSign);
|
||||||
System.out.println("detach验签:"+ ver);
|
// System.out.println("detach验签:"+ ver);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -327,7 +346,7 @@ public class Test4NongxinCW {
|
|||||||
// masterNodes.add("172.16.18.99:8889");
|
// masterNodes.add("172.16.18.99:8889");
|
||||||
// masterNodes.add("172.16.18.5:8889");
|
// masterNodes.add("172.16.18.5:8889");
|
||||||
masterNodes.add("172.1.41.139:8889");
|
masterNodes.add("172.1.41.139:8889");
|
||||||
// masterNodes.add("172.1.41.96:8889");
|
masterNodes.add("172.1.41.196:8889");
|
||||||
// masterNodes.add("172.16.18.8:8889");
|
// masterNodes.add("172.16.18.8:8889");
|
||||||
int timeout = 1000;
|
int timeout = 1000;
|
||||||
Map<String, String> map = new HashMap<>();
|
Map<String, String> map = new HashMap<>();
|
||||||
@ -336,16 +355,14 @@ public class Test4NongxinCW {
|
|||||||
map.put("enterprise.oid", "1.3.6.1.4.1.9999");
|
map.put("enterprise.oid", "1.3.6.1.4.1.9999");
|
||||||
map.put("snmp.community", "public");
|
map.put("snmp.community", "public");
|
||||||
map.put("snmp.version", "1");
|
map.put("snmp.version", "1");
|
||||||
String snmpConfig = new Gson().toJson(map);
|
Gson gson = new Gson();
|
||||||
|
String snmpConfig = gson.toJson(map);
|
||||||
SydApi4j sydApi4j = new SydApi4j();
|
SydApi4j sydApi4j = new SydApi4j();
|
||||||
sydApi4j.importCertToServers(masterNodes, timeout, cert, "12345678", snmpConfig);
|
ImportResult result = sydApi4j.importCertToServers(masterNodes, timeout, cert, "12345678", snmpConfig);
|
||||||
// try {
|
System.out.println(gson.toJson(result));
|
||||||
// sydApi4j.importCertToServers(masterNodes, timeout, cert1, "12345678", snmpConfig);
|
System.out.println(result.getCode());
|
||||||
// } catch (SydApiException e) {
|
System.out.println(gson.toJson(result.getErrCnt()));
|
||||||
//// if (e.getRetCode() == 56300) {
|
System.out.println(result.getCertDn());
|
||||||
//// System.out.println(e.getMessage());
|
|
||||||
//// }
|
|
||||||
// }
|
|
||||||
stopWatch.stop();
|
stopWatch.stop();
|
||||||
System.out.println(stopWatch.getTotalTimeSeconds());
|
System.out.println(stopWatch.getTotalTimeSeconds());
|
||||||
}
|
}
|
||||||
@ -389,10 +406,15 @@ public class Test4NongxinCW {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void selCert() {
|
public void selCert() throws UnsupportedEncodingException {
|
||||||
String data = "MIIDyQYKKoEcz1UGAQQCAqCCA7kwggO1AgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIICujCCArYwggJboAMCAQICBSBhWZmSMAwGCCqBHM9VAYN1BQAwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMTAeFw0yMjEwMjQwMTM4NDdaFw0yNTEwMjQxNTU5NTlaMG0xCzAJBgNVBAYTAmNuMRUwEwYDVQQKDAxDRkNBIFRFU1QgQ0ExDjAMBgNVBAsMBUNOQVBTMRQwEgYDVQQLDAtFbnRlcnByaXNlczEhMB8GA1UEAwwYMDQxQFowMDAwQG5wYzAyQDAwMDAwMDU3MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEogTVy1LIqW7BXiOoNkMZ3h3IsWFXQ7MUOvGuXzsneZTLKxAEUsyzQg+Q1lOwGhU8GzcWs4TFWe0o4xGJZch0zqOB9TCB8jAfBgNVHSMEGDAWgBS+pn5NPXyPoFXmwS8JLiwgQ7NCfzBIBgNVHSAEQTA/MD0GCGCBHIbvKgECMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTUuaHRtMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly8yMTAuNzQuNDIuMy9PQ0ExMS9TTTIvY3JsMjI5OTAuY3JsMAsGA1UdDwQEAwID6DAdBgNVHQ4EFgQUoOXRJpClT9Q3Gnq/VZhoryt8VNEwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMAwGCCqBHM9VAYN1BQADRwAwRAIgThN7q4hMTNFDM3LcI4BuLpqLjNQA2psZLHBW9/18I74CIHCa1Sfy3DX/IZr0JbDH1EhzArj4ZWtblKC0M/8C38yYMYHTMIHQAgEBMGYwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMQIFIGFZmZIwDAYIKoEcz1UBgxEFADANBgkqgRzPVQGCLQEFAARGMEQCIAdiCAIN/KNfW1SlsBfs1FCkDTBCG6Xbt42JvXxLLEO/AiBaAN1AT7JLWxHLz0YcmbB9wkkUy4kZOFXxaVU+qbleHQ==";
|
// String data = "MIIDyQYKKoEcz1UGAQQCAqCCA7kwggO1AgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIICujCCArYwggJboAMCAQICBSBhWZmSMAwGCCqBHM9VAYN1BQAwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMTAeFw0yMjEwMjQwMTM4NDdaFw0yNTEwMjQxNTU5NTlaMG0xCzAJBgNVBAYTAmNuMRUwEwYDVQQKDAxDRkNBIFRFU1QgQ0ExDjAMBgNVBAsMBUNOQVBTMRQwEgYDVQQLDAtFbnRlcnByaXNlczEhMB8GA1UEAwwYMDQxQFowMDAwQG5wYzAyQDAwMDAwMDU3MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEogTVy1LIqW7BXiOoNkMZ3h3IsWFXQ7MUOvGuXzsneZTLKxAEUsyzQg+Q1lOwGhU8GzcWs4TFWe0o4xGJZch0zqOB9TCB8jAfBgNVHSMEGDAWgBS+pn5NPXyPoFXmwS8JLiwgQ7NCfzBIBgNVHSAEQTA/MD0GCGCBHIbvKgECMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTUuaHRtMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly8yMTAuNzQuNDIuMy9PQ0ExMS9TTTIvY3JsMjI5OTAuY3JsMAsGA1UdDwQEAwID6DAdBgNVHQ4EFgQUoOXRJpClT9Q3Gnq/VZhoryt8VNEwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMAwGCCqBHM9VAYN1BQADRwAwRAIgThN7q4hMTNFDM3LcI4BuLpqLjNQA2psZLHBW9/18I74CIHCa1Sfy3DX/IZr0JbDH1EhzArj4ZWtblKC0M/8C38yYMYHTMIHQAgEBMGYwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMQIFIGFZmZIwDAYIKoEcz1UBgxEFADANBgkqgRzPVQGCLQEFAARGMEQCIAdiCAIN/KNfW1SlsBfs1FCkDTBCG6Xbt42JvXxLLEO/AiBaAN1AT7JLWxHLz0YcmbB9wkkUy4kZOFXxaVU+qbleHQ==";
|
||||||
String s = api.getCertBySign(data);
|
// String s = api.getCertBySign(data);
|
||||||
System.out.println(s);
|
// System.out.println(s);
|
||||||
|
|
||||||
|
// String cert = api.getCertByDn(SM2dn,0);
|
||||||
|
// System.out.println(cert);
|
||||||
|
|
||||||
|
System.out.println(Util.bytes2HexString(orgData));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -426,20 +448,21 @@ public class Test4NongxinCW {
|
|||||||
|
|
||||||
//导入证书并获取DN
|
//导入证书并获取DN
|
||||||
SydApi4j sydApi4j = new SydApi4j();
|
SydApi4j sydApi4j = new SydApi4j();
|
||||||
String SM2dn = sydApi4j.importCertToServers(masterNodes, timeout, cert, "12345678", snmpConfig);
|
String SM2dn = sydApi4j.importCertToServers(masterNodes, timeout, cert, "12345678", snmpConfig).getCertDn();
|
||||||
System.out.println("------------------------------------------------------------------------------------");
|
System.out.println("------------------------------------------------------------------------------------");
|
||||||
System.out.println("导入证书主题为:"+ SM2dn);
|
System.out.println("导入证书主题为:"+ SM2dn);
|
||||||
|
|
||||||
//主备模式设置
|
//主备模式设置
|
||||||
SydApi4j.SYD_Set_Parameter_HA("172.1.41.96", "172.1.1.2", 8889, 1000);
|
SydApi4j.SYD_Set_Parameter_HA("192.168.0.8", "172.1.1.2", 8889, 1000);
|
||||||
SydApi4j api = (SydApi4j) new SydApi4j();
|
SydApi4j api = (SydApi4j) new SydApi4j();
|
||||||
|
|
||||||
//签名原始数据
|
//签名原始数据
|
||||||
byte[] orgData = new byte[1024];
|
byte[] orgData = "12345678".getBytes();
|
||||||
//p1裸签名(国密证书)
|
//p1裸签名(国密证书)
|
||||||
byte[] nakedSign = api.SYD_NakedSign(orgData, SM2dn);
|
byte[] nakedSign = api.SYD_NakedSign(orgData, SM2dn);
|
||||||
System.out.println("------------------------------------------------------------------------------------");
|
System.out.println("------------------------------------------------------------------------------------");
|
||||||
System.out.println("p1签名:"+ Util.bytes2HexString(nakedSign));
|
System.out.println("p1签名:"+ Util.bytes2HexString(nakedSign));
|
||||||
|
System.out.println("p1签名2:"+ Base64.getEncoder().encodeToString(nakedSign));
|
||||||
//p1裸签验签(国密证书)
|
//p1裸签验签(国密证书)
|
||||||
boolean ver = api.SYD_NakedVerify(orgData, nakedSign, SM2dn);
|
boolean ver = api.SYD_NakedVerify(orgData, nakedSign, SM2dn);
|
||||||
System.out.println("------------------------------------------------------------------------------------");
|
System.out.println("------------------------------------------------------------------------------------");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user