证书导入结果修改

This commit is contained in:
waner
2025-06-19 11:05:12 +08:00
parent b4d3c1d193
commit 4372362086
4 changed files with 208 additions and 116 deletions
+67 -44
View File
@@ -2,7 +2,9 @@ package sample;
import cn.hutool.core.date.StopWatch;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.sunyard.SydApiException;
import com.sunyard.entity.ImportResult;
import com.sunyard.proto.Util;
import com.sunyard.util.CertUtil;
import com.sunyard.util.IpLockUtils;
@@ -11,6 +13,7 @@ import org.junit.Before;
import org.junit.Test;
import racal.sunyard.main.SydApi4j;
import java.io.UnsupportedEncodingException;
import java.security.cert.X509Certificate;
import java.util.*;
import java.util.concurrent.*;
@@ -23,12 +26,12 @@ public class Test4NongxinCW {
final String SM2dn = "C=CN,ST=zz,L=zz,O=zzz,CN=zzzzz";
byte[] orgData = new byte[100];
byte[] orgData = new byte[1024];
@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.startHeartbeat();
@@ -53,12 +56,17 @@ public class Test4NongxinCW {
@Test
public void testHA() {
for (int i = 0; i < 100000; i++) {
// byte[] nakedSign = api.SYD_NakedSign(orgData,SM2dn);
// byte[] nakedSign1 = api.SYD_NakedSignAll(4,orgData, SM2dn);
// System.out.println("SM2大数据裸签:"+ Util.bytes2HexString(nakedSign1));
// 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));
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参数
// SydApi4j.SYD_Set_Parameter_HA("172.1.41.139", "172.1.41.96", 8889, 1000);
// 创建20个线程并发操作API
ExecutorService executor = Executors.newFixedThreadPool(20);
// 创建200个线程并发操作API
ExecutorService executor = Executors.newFixedThreadPool(100);
List<Future<?>> futures = new ArrayList<>();
// 模拟主节点故障
CountDownLatch startLatch = new CountDownLatch(1);
for (int i = 0; i < 200; i++) {
for (int i = 0; i < 100; i++) {
futures.add(executor.submit(() -> {
try {
startLatch.await(); // 等待统一开始
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// try {
// startLatch.await(); // 等待统一开始
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
SydApi4j api2 = new SydApi4j();
for (int j = 0; j < 1000; j++) {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
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);
// System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign1));
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));
//裸签验签
boolean ver = api.SYD_NakedVerify(orgData,nakedSign, SM2dn);
System.out.println("SM2验签:"+ ver);
// boolean ver = api.SYD_NakedVerify(orgData,nakedSign, SM2dn);
// System.out.println("SM2验签:"+ ver);
}
@Test
@@ -136,14 +151,18 @@ public class Test4NongxinCW {
@Test
public void detSign(){
orgData = new byte[4096];
//detach签名
String detachedSign = api.detachedSign(orgData, SM2dn);
System.out.println("detach签名:"+ detachedSign);
orgData = new byte[1024];
for (int i = 0; i < 10000; i++) {
//detach签名
String detachedSign = api.detachedSign(orgData, SM2dn);
System.out.println("detach签名:"+ detachedSign);
//detach验签
boolean ver = api.detachedVerify(orgData, detachedSign);
// System.out.println("detach验签:"+ ver);
}
//detach验签
boolean ver = api.detachedVerify(orgData, detachedSign);
System.out.println("detach验签:"+ ver);
}
@@ -327,7 +346,7 @@ public class Test4NongxinCW {
// masterNodes.add("172.16.18.99:8889");
// masterNodes.add("172.16.18.5: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");
int timeout = 1000;
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("snmp.community", "public");
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.importCertToServers(masterNodes, timeout, cert, "12345678", snmpConfig);
// try {
// sydApi4j.importCertToServers(masterNodes, timeout, cert1, "12345678", snmpConfig);
// } catch (SydApiException e) {
//// if (e.getRetCode() == 56300) {
//// System.out.println(e.getMessage());
//// }
// }
ImportResult result = sydApi4j.importCertToServers(masterNodes, timeout, cert, "12345678", snmpConfig);
System.out.println(gson.toJson(result));
System.out.println(result.getCode());
System.out.println(gson.toJson(result.getErrCnt()));
System.out.println(result.getCertDn());
stopWatch.stop();
System.out.println(stopWatch.getTotalTimeSeconds());
}
@@ -389,10 +406,15 @@ public class Test4NongxinCW {
}
@Test
public void selCert() {
String data = "MIIDyQYKKoEcz1UGAQQCAqCCA7kwggO1AgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIICujCCArYwggJboAMCAQICBSBhWZmSMAwGCCqBHM9VAYN1BQAwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMTAeFw0yMjEwMjQwMTM4NDdaFw0yNTEwMjQxNTU5NTlaMG0xCzAJBgNVBAYTAmNuMRUwEwYDVQQKDAxDRkNBIFRFU1QgQ0ExDjAMBgNVBAsMBUNOQVBTMRQwEgYDVQQLDAtFbnRlcnByaXNlczEhMB8GA1UEAwwYMDQxQFowMDAwQG5wYzAyQDAwMDAwMDU3MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEogTVy1LIqW7BXiOoNkMZ3h3IsWFXQ7MUOvGuXzsneZTLKxAEUsyzQg+Q1lOwGhU8GzcWs4TFWe0o4xGJZch0zqOB9TCB8jAfBgNVHSMEGDAWgBS+pn5NPXyPoFXmwS8JLiwgQ7NCfzBIBgNVHSAEQTA/MD0GCGCBHIbvKgECMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTUuaHRtMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly8yMTAuNzQuNDIuMy9PQ0ExMS9TTTIvY3JsMjI5OTAuY3JsMAsGA1UdDwQEAwID6DAdBgNVHQ4EFgQUoOXRJpClT9Q3Gnq/VZhoryt8VNEwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMAwGCCqBHM9VAYN1BQADRwAwRAIgThN7q4hMTNFDM3LcI4BuLpqLjNQA2psZLHBW9/18I74CIHCa1Sfy3DX/IZr0JbDH1EhzArj4ZWtblKC0M/8C38yYMYHTMIHQAgEBMGYwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMQIFIGFZmZIwDAYIKoEcz1UBgxEFADANBgkqgRzPVQGCLQEFAARGMEQCIAdiCAIN/KNfW1SlsBfs1FCkDTBCG6Xbt42JvXxLLEO/AiBaAN1AT7JLWxHLz0YcmbB9wkkUy4kZOFXxaVU+qbleHQ==";
String s = api.getCertBySign(data);
System.out.println(s);
public void selCert() throws UnsupportedEncodingException {
// String data = "MIIDyQYKKoEcz1UGAQQCAqCCA7kwggO1AgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIICujCCArYwggJboAMCAQICBSBhWZmSMAwGCCqBHM9VAYN1BQAwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMTAeFw0yMjEwMjQwMTM4NDdaFw0yNTEwMjQxNTU5NTlaMG0xCzAJBgNVBAYTAmNuMRUwEwYDVQQKDAxDRkNBIFRFU1QgQ0ExDjAMBgNVBAsMBUNOQVBTMRQwEgYDVQQLDAtFbnRlcnByaXNlczEhMB8GA1UEAwwYMDQxQFowMDAwQG5wYzAyQDAwMDAwMDU3MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEogTVy1LIqW7BXiOoNkMZ3h3IsWFXQ7MUOvGuXzsneZTLKxAEUsyzQg+Q1lOwGhU8GzcWs4TFWe0o4xGJZch0zqOB9TCB8jAfBgNVHSMEGDAWgBS+pn5NPXyPoFXmwS8JLiwgQ7NCfzBIBgNVHSAEQTA/MD0GCGCBHIbvKgECMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTUuaHRtMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly8yMTAuNzQuNDIuMy9PQ0ExMS9TTTIvY3JsMjI5OTAuY3JsMAsGA1UdDwQEAwID6DAdBgNVHQ4EFgQUoOXRJpClT9Q3Gnq/VZhoryt8VNEwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMAwGCCqBHM9VAYN1BQADRwAwRAIgThN7q4hMTNFDM3LcI4BuLpqLjNQA2psZLHBW9/18I74CIHCa1Sfy3DX/IZr0JbDH1EhzArj4ZWtblKC0M/8C38yYMYHTMIHQAgEBMGYwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMQIFIGFZmZIwDAYIKoEcz1UBgxEFADANBgkqgRzPVQGCLQEFAARGMEQCIAdiCAIN/KNfW1SlsBfs1FCkDTBCG6Xbt42JvXxLLEO/AiBaAN1AT7JLWxHLz0YcmbB9wkkUy4kZOFXxaVU+qbleHQ==";
// String s = api.getCertBySign(data);
// System.out.println(s);
// String cert = api.getCertByDn(SM2dn,0);
// System.out.println(cert);
System.out.println(Util.bytes2HexString(orgData));
}
@Test
@@ -426,20 +448,21 @@ public class Test4NongxinCW {
//导入证书并获取DN
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("导入证书主题为:"+ 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();
//签名原始数据
byte[] orgData = new byte[1024];
byte[] orgData = "12345678".getBytes();
//p1裸签名(国密证书)
byte[] nakedSign = api.SYD_NakedSign(orgData, SM2dn);
System.out.println("------------------------------------------------------------------------------------");
System.out.println("p1签名:"+ Util.bytes2HexString(nakedSign));
System.out.println("p1签名2:"+ Base64.getEncoder().encodeToString(nakedSign));
//p1裸签验签(国密证书)
boolean ver = api.SYD_NakedVerify(orgData, nakedSign, SM2dn);
System.out.println("------------------------------------------------------------------------------------");