From 1f2709326fcb5bd9bf4e28d17b865595ac7ee4c8 Mon Sep 17 00:00:00 2001 From: waner Date: Fri, 18 Jul 2025 09:44:54 +0800 Subject: [PATCH] =?UTF-8?q?jmeter=E6=B5=8B=E8=AF=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/Sample/SydUtils.java | 38 +++++++ .../java/com/jmeter/test/Test4Jemter.java | 35 ++++-- src/test/java/sample/SydUtils.java | 29 ----- src/test/java/sample/Test4NongxinCW.java | 100 +++++++++++------- 4 files changed, 121 insertions(+), 81 deletions(-) create mode 100644 src/main/java/com/Sample/SydUtils.java delete mode 100644 src/test/java/sample/SydUtils.java diff --git a/src/main/java/com/Sample/SydUtils.java b/src/main/java/com/Sample/SydUtils.java new file mode 100644 index 0000000..cfd989a --- /dev/null +++ b/src/main/java/com/Sample/SydUtils.java @@ -0,0 +1,38 @@ +package com.Sample; + +import racal.sunyard.main.SydApi4j; + +public class SydUtils { + + private final SydApi4j sydApi4j; + + static { + System.setProperty("com.sunyard.dnsort", "true"); + } + + public SydUtils(String ip1, String ip2, int port, int timeout) { + SydApi4j.SYD_Set_Parameter_HA(ip1, ip2, port, timeout); + sydApi4j = (SydApi4j) new SydApi4j(); + + } + + public void disconnect() { + sydApi4j.disconnect(); + } + + public byte[] SYD_NakedSign(byte[] orgData, String SM2dn) { + return sydApi4j.SYD_NakedSign(orgData,SM2dn); + } + + public boolean SYD_NakedVerify(byte[] orgData, byte[] nakedSign, String SM2dn){ + return sydApi4j.SYD_NakedVerify(orgData, nakedSign, SM2dn); + } + + public boolean detachedVerify(byte[] orgData, String sign) { + return sydApi4j.detachedVerify(orgData, sign); + } + + public String detachedSign(byte[] orgData, String sCertDN) { + return sydApi4j.detachedSign(orgData, sCertDN); + } +} diff --git a/src/main/java/com/jmeter/test/Test4Jemter.java b/src/main/java/com/jmeter/test/Test4Jemter.java index a03024a..a53f4f0 100644 --- a/src/main/java/com/jmeter/test/Test4Jemter.java +++ b/src/main/java/com/jmeter/test/Test4Jemter.java @@ -1,5 +1,6 @@ package com.jmeter.test; +import com.Sample.SydUtils; import com.google.gson.Gson; import com.sunyard.SydApiException; import com.sunyard.entity.ImportResult; @@ -132,14 +133,17 @@ public class Test4Jemter extends AbstractJavaSamplerClient { sr.setSampleLabel("testDemo"); //设置开始标志,否则无法统计tps等 sr.sampleStart(); + SydUtils sydUtils = null; try { orgData = oData.getBytes(); //SM2裸签 + sydUtils = new SydUtils(ip, ip2, port, timeout); // orgData = new byte[dataLength]; //执行业务逻辑 switch(type){ case 1: // api.get().SYD_NakedSign(SM2dn, orgData, (byte[]) null); - byte[] nakedSign = api.get().SYD_NakedSign(orgData,SM2dn); +// byte[] nakedSign = api.get().SYD_NakedSign(orgData,SM2dn); + byte[] nakedSign = sydUtils.SYD_NakedSign(orgData,SM2dn); if (logSwitch == 1) { System.out.println("p1签名(hex):"+ Util.bytes2HexString(nakedSign)); } @@ -151,7 +155,8 @@ public class Test4Jemter extends AbstractJavaSamplerClient { case 2: // api.get().SYD_NakedVerify(SM2dn, Util.decodeBase64(sign), orgData, (byte[])null) ; - boolean flag = api.get().SYD_NakedVerify(orgData,Util.hexString2Bytes(sign), SM2dn); +// boolean flag = api.get().SYD_NakedVerify(orgData,Util.hexString2Bytes(sign), SM2dn); + boolean flag = sydUtils.SYD_NakedVerify(orgData,Util.hexString2Bytes(sign), SM2dn); if (logSwitch == 1) { System.out.println("p1验签:"+ flag); } @@ -175,7 +180,7 @@ public class Test4Jemter extends AbstractJavaSamplerClient { case 5: // api.get().detachedSign(1, orgData, SM2dn); //p7 detached签名 - String detachedSign1 = api.get().detachedSign(orgData, SM2dn); + String detachedSign1 = sydUtils.detachedSign(orgData, SM2dn); if (logSwitch == 1) { System.out.println("p7 detach签名:"+ detachedSign1); } @@ -186,7 +191,8 @@ public class Test4Jemter extends AbstractJavaSamplerClient { case 6: // api.get().detachedVerify(1, orgData, sign); //p7 detached验签 - boolean ver = api.get().detachedVerify(orgData, detachedSign); +// boolean ver = api.get().detachedVerify(orgData, detachedSign); + boolean ver = sydUtils.detachedVerify(orgData, detachedSign); if (logSwitch == 1) { System.out.println("p7 detach验签:"+ ver); } @@ -246,7 +252,7 @@ public class Test4Jemter extends AbstractJavaSamplerClient { case 15: - api.get(). generateDE(RSAdn.getBytes(), 4, 1, orgData); + api.get().generateDE(RSAdn.getBytes(), 4, 1, orgData); // byte[] cipherKeyRSA = (byte[]) genRSA.get(SydApi.RET_CIPHER_KEY); sr.setResponseCodeOK(); //sr.setResponseData(new String(cipherKeyRSA), StandardCharsets.UTF_8.displayName()); @@ -265,7 +271,7 @@ public class Test4Jemter extends AbstractJavaSamplerClient { sr.setResponseCodeOK(); break; case 18: - testAhnx(); + testAhnx(sydUtils); sr.setResponseCodeOK(); break; case 19: @@ -287,24 +293,27 @@ public class Test4Jemter extends AbstractJavaSamplerClient { sr.setResponseData(e.getMessage(), StandardCharsets.UTF_8.displayName()); sr.setSuccessful(false); }finally { + if (sydUtils != null) { + sydUtils.disconnect(); + } sr.sampleEnd(); } return sr; } - public void testAhnx() { + public void testAhnx(SydUtils sydUtils) { //裸签 - byte[] nakedSign = api.get().SYD_NakedSign(orgData,SM2dn); + byte[] nakedSign = sydUtils.SYD_NakedSign(orgData,SM2dn); //裸签验签 - boolean ver = api.get().SYD_NakedVerify(orgData,nakedSign, SM2dn); + boolean ver = sydUtils.SYD_NakedVerify(orgData,nakedSign, SM2dn); //detach签名 - String detachedSign = api.get().detachedSign(orgData, SM2dn); + String detachedSign = sydUtils.detachedSign(orgData, SM2dn); //detach验签 - boolean ver1 = api.get().detachedVerify(orgData, detachedSign); + boolean ver1 = sydUtils.detachedVerify(orgData, detachedSign); // testImportCert(); } @@ -347,5 +356,9 @@ public class Test4Jemter extends AbstractJavaSamplerClient { @Override public void teardownTest(JavaSamplerContext context) { System.runFinalization(); + if (api != null) { + api.get().disconnect(); + api.remove(); + } } } \ No newline at end of file diff --git a/src/test/java/sample/SydUtils.java b/src/test/java/sample/SydUtils.java deleted file mode 100644 index 7a7196c..0000000 --- a/src/test/java/sample/SydUtils.java +++ /dev/null @@ -1,29 +0,0 @@ -package sample; - -import racal.sunyard.main.SydApi4j; - -public class SydUtils { - - private final SydApi4j sydApi4j; - - static { - System.setProperty("com.sunyard.dnsort", "true"); - SydApi4j.SYD_Set_Parameter_HA("172.1.41.139", "172.1.41.96", 8889, 3000); - } - - public SydUtils() { - sydApi4j = (SydApi4j) new SydApi4j(); - } - - public void disconnect() { - sydApi4j.disconnect(); - } - - public byte[] nakedSign(byte[] orgData, String SM2dn) { - return sydApi4j.SYD_NakedSign(orgData,SM2dn); - } - - public boolean nakedVerify(byte[] orgData, byte[] nakedSign, String SM2dn){ - return sydApi4j.SYD_NakedVerify(orgData, nakedSign, SM2dn); - } -} diff --git a/src/test/java/sample/Test4NongxinCW.java b/src/test/java/sample/Test4NongxinCW.java index 448e230..4554a16 100644 --- a/src/test/java/sample/Test4NongxinCW.java +++ b/src/test/java/sample/Test4NongxinCW.java @@ -1,6 +1,7 @@ package sample; import cn.hutool.core.date.StopWatch; +import com.Sample.SydUtils; import com.google.gson.Gson; import com.sunyard.RetWrap; import com.sunyard.SydApi; @@ -15,6 +16,7 @@ import org.junit.Test; import racal.sunyard.main.SydApi4j; import java.io.StringWriter; +import java.nio.charset.StandardCharsets; import java.security.cert.X509Certificate; import java.util.*; import java.util.concurrent.*; @@ -74,12 +76,12 @@ public class Test4NongxinCW { @Test public void testPerformance() throws InterruptedException, ExecutionException { // 创建200个线程并发操作API - ExecutorService executor = Executors.newFixedThreadPool(100); + ExecutorService executor = Executors.newFixedThreadPool(10); List> futures = new ArrayList<>(); CountDownLatch startLatch = new CountDownLatch(1); - for (int i = 0; i < 100; i++) { + for (int i = 0; i < 10; i++) { futures.add(executor.submit(() -> { SydApi4j api2 = new SydApi4j(); @@ -88,12 +90,12 @@ public class Test4NongxinCW { stopWatch.start(); byte[] nakedSign = api2.SYD_NakedSign(orgData,SM2dn); 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"); +// 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"); } api2.disconnect(); })); @@ -117,20 +119,20 @@ public class Test4NongxinCW { @Test public void testUtils() throws InterruptedException, ExecutionException { // 创建200个线程并发操作API - ExecutorService executor = Executors.newFixedThreadPool(200); + ExecutorService executor = Executors.newFixedThreadPool(10); List> futures = new ArrayList<>(); CountDownLatch startLatch = new CountDownLatch(1); - for (int i = 0; i < 200; i++) { + for (int i = 0; i < 20; i++) { futures.add(executor.submit(() -> { for (int j = 0; j < 1000; j++) { StopWatch stopWatch = new StopWatch(); - SydUtils sydUtils = new SydUtils(); + SydUtils sydUtils = new SydUtils("172.1.41.139", "172.1.41.96", 8889, 3000); stopWatch.start(); - byte[] nakedSign = sydUtils.nakedSign(orgData,SM2dn); + byte[] nakedSign = sydUtils.SYD_NakedSign(orgData,SM2dn); stopWatch.stop(); System.out.println("p1签名耗时---:" + stopWatch.getLastTaskTimeMillis() + "ms"); stopWatch.start(); - boolean ver = sydUtils.nakedVerify(orgData,nakedSign, SM2dn); + boolean ver = sydUtils.SYD_NakedVerify(orgData,nakedSign, SM2dn); stopWatch.stop(); System.out.println("p1验签耗时:" + stopWatch.getLastTaskTimeMillis() + "ms"); sydUtils.disconnect(); @@ -149,20 +151,29 @@ public class Test4NongxinCW { @Test public void nakeSign(){ + String ori = "2025071700064382|2025-06-21T15:39:47|102100088898|102100088898|402361018886|402361018886|BEPS|DM00|202507170013|010000|123456789123456789|1|2025071700064387|王二|地址908|6232208340101760984|402361018886|402361018886|CNY0.05|"; + System.out.println(Util.encodeBase64(ori.getBytes(StandardCharsets.UTF_8))); + + String signValue = "MEYCIQDdG83MV2zyX2ZboKKUKZX+8qHr3ZfmxlBY7gElqEQZsAIhAPXjePjHfjChP0Rdlsf4PU9eJN7Lbl29nrHCQ7NzhZOV"; + byte[] s = Util.decodeBase64(signValue); + System.out.println(Util.bytes2HexString(s)); // String SM2dn1 = "C=CN,ST=3,L=3,O=3,OU=3,OU=3,CN=3"; // orgData = Hex.decode("80a370b809e8a46ba51211a35d6f0180fea32b4acc97916bc9c517ea6651134c"); // byte[] nakedSign1 = api.SYD_NakedSign(SM2dn, (byte[])null, orgData); // System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign1)); - String dn ="C=cn,O=CFCA CS OCA11,OU=CNAPS,OU=Enterprises,CN=041@Z313641099995@BHN@00000010"; - orgData = new byte[1024]; - //裸签 -// byte[] nakedSign = api.SYD_NakedSign(orgData,dn); +// String dn ="C=cn,O=CFCA CS OCA11,OU=CNAPS,OU=Enterprises,CN=041@Z313641099995@BHN@00000010"; +// orgData = "123456".getBytes(); +// +// //裸签 +// byte[] nakedSign = api.SYD_NakedSign(orgData, SM2dn); // System.out.println("SM2签名:"+ Util.bytes2HexString(nakedSign)); - //裸签验签 - String sign = "30450220400849D815EE6C73A6D7334D76EF6076452367E444BBF902B4278A0D7C9843C302210095086DDC9A42E53ABCD0B172BA6A9A9814AEA580C19CDD229ABD3277321984C1"; - boolean ver = api.SYD_NakedVerify(orgData,Util.hexString2Bytes(sign), dn); - System.out.println("SM2验签:"+ ver); +// System.out.println(Util.encodeBase64(nakedSign)); +// //裸签验签 +// +// String sign = "30450220400849D815EE6C73A6D7334D76EF6076452367E444BBF902B4278A0D7C9843C302210095086DDC9A42E53ABCD0B172BA6A9A9814AEA580C19CDD229ABD3277321984C1"; +// boolean ver = api.SYD_NakedVerify(orgData, nakedSign, SM2dn); +// System.out.println("SM2验签:"+ ver); } @Test @@ -389,7 +400,8 @@ public class Test4NongxinCW { String dn1 = "C=cn,O=CFCA CS OCA11,OU=CNAPS,OU=Enterprises,CN=041@Z313641099995@BHN@00000010"; String dn2 = "C=cn,O=CFCA TEST OCA1,OU=DEMP,OU=Organizational-1,CN=041@ZDEMP@DEMP@00000001"; - String s = api.getCertByDn(dn1,0); +// String s = api.getCertByDn(dn1); + String s = api.getCertByDn(dn1.getBytes()); System.out.println(s); String message = "sdas发顺丰"; byte[] gbkBytes = message.getBytes("GBK"); @@ -403,14 +415,14 @@ public class Test4NongxinCW { @Test public void selCert() throws Exception { - String certBase64 = "MIICujCCAl6gAwIBAgIFEFeGNUIwDAYIKoEcz1UBg3UFADBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIFRFU1QgU00yIE9DQTEwHhcNMjMxMDI2MDYwMDU5WhcNMjgxMDI2MDYwMDU5WjByMQswCQYDVQQGEwJjbjEXMBUGA1UECgwOQ0ZDQSBURVNUIE9DQTExDTALBgNVBAsMBERFTVAxGTAXBgNVBAsMEE9yZ2FuaXphdGlvbmFsLTExIDAeBgNVBAMMFzA0MUBaREVNUEBERU1QQDAwMDAwMDAxMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE3NOLwnCvPxeZxS5lUSl+fxojdYwV1mD5eDGOkPeATl88oW0Q1PuBd0aQ29HmufRamZb2BlfLhjcgS5TsKlX4qqOB9DCB8TAfBgNVHSMEGDAWgBRr/hjaj0I6prhtsy6Igzo0osEw4TBIBgNVHSAEQTA/MD0GCGCBHIbvKgEBMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTQuaHRtMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly91Y3JsLmNmY2EuY29tLmNuL1NNMi9jcmw1Mzg2My5jcmwwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBSElGKzsZJ04RMd60sFqiHpxl9/njAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDAYIKoEcz1UBg3UFAANIADBFAiEAjmCCIlDNdXw0qRZe7oYrkel4wTpg++c/C+MKLbPfRpgCIEVyrM68qeuVmaFZ5ZA3TtUXQg1RYQjz/5yhl/3jhdQ9"; - String s = "MIICujCCAl6gAwIBAgIFEFeGNUIwDAYIKoEcz1UBg3UFADBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y aXR5MRswGQYDVQQDDBJDRkNBIFRFU1QgU00yIE9DQTEwHhcNMjMxMDI2MDYwMDU5 WhcNMjgxMDI2MDYwMDU5WjByMQswCQYDVQQGEwJjbjEXMBUGA1UECgwOQ0ZDQSBU RVNUIE9DQTExDTALBgNVBAsMBERFTVAxGTAXBgNVBAsMEE9yZ2FuaXphdGlvbmFs LTExIDAeBgNVBAMMFzA0MUBaREVNUEBERU1QQDAwMDAwMDAxMFkwEwYHKoZIzj0C AQYIKoEcz1UBgi0DQgAE3NOLwnCvPxeZxS5lUSl+fxojdYwV1mD5eDGOkPeATl88 oW0Q1PuBd0aQ29HmufRamZb2BlfLhjcgS5TsKlX4qqOB9DCB8TAfBgNVHSMEGDAW gBRr/hjaj0I6prhtsy6Igzo0osEw4TBIBgNVHSAEQTA/MD0GCGCBHIbvKgEBMDEw LwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTQuaHRt MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly91Y3JsLmNmY2EuY29tLmNuL1NNMi9j cmw1Mzg2My5jcmwwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBSElGKzsZJ04RMd60sF qiHpxl9/njAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDAYIKoEcz1UB g3UFAANIADBFAiEAjmCCIlDNdXw0qRZe7oYrkel4wTpg++c/C+MKLbPfRpgCIEVy rM68qeuVmaFZ5ZA3TtUXQg1RYQjz/5yhl/3jhdQ9"; - String cert = convertToPem( Base64.getDecoder().decode(s)); +// String certBase64 = "MIICujCCAl6gAwIBAgIFEFeGNUIwDAYIKoEcz1UBg3UFADBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIFRFU1QgU00yIE9DQTEwHhcNMjMxMDI2MDYwMDU5WhcNMjgxMDI2MDYwMDU5WjByMQswCQYDVQQGEwJjbjEXMBUGA1UECgwOQ0ZDQSBURVNUIE9DQTExDTALBgNVBAsMBERFTVAxGTAXBgNVBAsMEE9yZ2FuaXphdGlvbmFsLTExIDAeBgNVBAMMFzA0MUBaREVNUEBERU1QQDAwMDAwMDAxMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE3NOLwnCvPxeZxS5lUSl+fxojdYwV1mD5eDGOkPeATl88oW0Q1PuBd0aQ29HmufRamZb2BlfLhjcgS5TsKlX4qqOB9DCB8TAfBgNVHSMEGDAWgBRr/hjaj0I6prhtsy6Igzo0osEw4TBIBgNVHSAEQTA/MD0GCGCBHIbvKgEBMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTQuaHRtMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly91Y3JsLmNmY2EuY29tLmNuL1NNMi9jcmw1Mzg2My5jcmwwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBSElGKzsZJ04RMd60sFqiHpxl9/njAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDAYIKoEcz1UBg3UFAANIADBFAiEAjmCCIlDNdXw0qRZe7oYrkel4wTpg++c/C+MKLbPfRpgCIEVyrM68qeuVmaFZ5ZA3TtUXQg1RYQjz/5yhl/3jhdQ9"; +// String s = "MIICzDCCAnCgAwIBAgIFIGdEBSgwDAYIKoEcz1UBg3UFADBdMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRwwGgYDVQQDDBNDRkNBIFRFU1QgU00yIE9DQTExMB4XDTIzMDcxMDA4MDIyN1oXDTI2MDQwNTA4MDIyN1owgYExCzAJBgNVBAYTAmNuMR8wHQYDVQQKDBZDRkNBIENTIFRFU1QgU00yIE9DQTExMQ4wDAYDVQQLDAVDTkFQUzEZMBcGA1UECwwQT3JnYW5pemF0aW9uYWwtMTEmMCQGA1UEAwwdMDUxQDMxMDIxMDAwODg4OThAeGxAMDAwMDAwMDEwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAASSIGceUTcELVdBO6F0xd4LWSvG2KfDeJJDeVFT0GxKyZ+CwJqLZCVX9V7rH3OGim34olp7QFPHjFj16UQCj7Doo4H1MIHyMB8GA1UdIwQYMBaAFL6mfk09fI+gVebBLwkuLCBDs0J/MEgGA1UdIARBMD8wPQYIYIEchu8qAQIwMTAvBggrBgEFBQcCARYjaHR0cDovL3d3dy5jZmNhLmNvbS5jbi91cy91cy0xNS5odG0wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovLzIxMC43NC40Mi4zL09DQTExL1NNMi9jcmwyODI4MC5jcmwwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBSdAfIokLVhVjYzOE8B1JmupwFeTDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDAYIKoEcz1UBg3UFAANIADBFAiAgtrRZ4HENDv11/yNFhSOdSrRrmvHuyVahXH8+aVZQrAIhAM6NTl1CFVewOOVB3VbPuVtYs5dyNpLSqC1tmxj5QtWd"; +// String cert = convertToPem( Base64.getDecoder().decode(s)); +// System.out.println("------------------------------------------------------------------------------------"); +// String dn = api.importCertAndGetDN(cert); +// System.out.println("导入证书成功,dn:" + dn); System.out.println("------------------------------------------------------------------------------------"); - String dn = api.importCertAndGetDN(cert); - System.out.println("导入证书成功,dn:" + dn); - System.out.println("------------------------------------------------------------------------------------"); - String cert1 = api.getCertByDn(dn,0); + String cert1 = api.getCertByDn(SM2dn,0); System.out.println("查询证书:" + cert1); System.out.println("------------------------------------------------------------------------------------"); // boolean delFlag = api.deleteCert(dn); @@ -442,8 +454,8 @@ public class Test4NongxinCW { "KFQCIAXZTL6VPtW67tM/DF4ZgFt5S/YIiFombKa2bWOfL81u\n" + "-----END CERTIFICATE-----"; List masterNodes = new ArrayList<>(); - masterNodes.add("172.1.41.19:8889"); - masterNodes.add("172.1.41.9:8889"); + masterNodes.add("172.1.41.96:8889"); + masterNodes.add("172.1.41.139:8889"); int timeout = 100; Map map = new HashMap<>(); map.put("snmp.target.ip", "172.1.1.191"); @@ -511,16 +523,22 @@ public class Test4NongxinCW { @Test public void testDE() { - SydApi4j sydApi4j = new SydApi4j(); -// String SM2dn = "C=CN,ST=北京,L=北京,O=信雅达,CN=172.1.40.188"; +// SydApi4j sydApi4j = new SydApi4j(); +//// String SM2dn = "C=CN,ST=北京,L=北京,O=信雅达,CN=172.1.40.188"; // String SM2dn = "C=CN,O=China Financial Certification Authority,CN=CFCA ACS TEST SM2 OCA31"; - //数字信封 - RetWrap genSM2 = api.generateDEByDn(SM2dn, orgData); - byte[] cipherKey = (byte[]) genSM2.get(SydApi.RET_CIPHER_KEY); - System.out.println("SM2数字信封: " + new String(cipherKey)); - RetWrap denSM2 = api.decryptDEByDN( SM2dn, cipherKey); - byte[] oData = (byte[]) denSM2.get("oData"); - System.out.println("SM2信封解密:"+Util.bytes2HexString(oData)); +// //数字信封 +// RetWrap genSM2 = api.generateDEByDn(SM2dn, orgData); +// byte[] cipherKey = (byte[]) genSM2.get(SydApi.RET_CIPHER_KEY); +// System.out.println("SM2数字信封: " + new String(cipherKey)); +// RetWrap denSM2 = api.decryptDEByDN( SM2dn, cipherKey); +// byte[] oData = (byte[]) denSM2.get("oData"); +// System.out.println("SM2信封解密:"+Util.bytes2HexString(oData)); + + String SM2dn = "C=CN,ST=北京,L=北京,O=信雅达,OU=双证,CN=172.1.40.188"; + String ivHex = "31323334353637383132333435363738"; + RetWrap genByDn = api.generateDEByDnICBC(SM2dn, ivHex,orgData,1); + String cipherKey1 = (String) genByDn.get(SydApi.RET_CIPHER_KEY); + System.out.println("SM2数字信封: " +cipherKey1); } @Test @@ -544,7 +562,7 @@ public class Test4NongxinCW { public void convert() throws Exception { //原始证书 String cert = - "MIIC3DCCAoCgAwIBAgIFIGiRZIYwDAYIKoEcz1UBg3UFADBdMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRwwGgYDVQQDDBNDRkNBIFRFU1QgU00yIE9DQTExMB4XDTI0MDgxNTA4MzAxMloXDTI3MDIwMTA4MzAxMlowgZExCzAJBgNVBAYTAmNuMR8wHQYDVQQKDBZDRkNBIENTIFRFU1QgU00yIE9DQTExMQ4wDAYDVQQLDAVDTkFQUzEZMBcGA1UECwwQT3JnYW5pemF0aW9uYWwtMTE2MDQGA1UEAwwtMDUxQFozMTM1ODEwMDMyODRAMzEzNTgxMDAzMjg0Q05BUFMyQDAwMDAwMDAxMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEFRjj5zgEwAnsF7hh6RVJfXSdybPBGBlF7gsVOUX5tU7E0YN/eYZk9j1jbOCrBWz611gsr+HkU0OZsFFlQTattKOB9TCB8jAfBgNVHSMEGDAWgBS+pn5NPXyPoFXmwS8JLiwgQ7NCfzBIBgNVHSAEQTA/MD0GCGCBHIbvKgECMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTUuaHRtMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly8yMTAuNzQuNDIuMy9PQ0ExMS9TTTIvY3JsMjkyODkuY3JsMAsGA1UdDwQEAwID6DAdBgNVHQ4EFgQUDONZoezPmMkCIHifM0KK9y0N8bQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMAwGCCqBHM9VAYN1BQADSAAwRQIhAKesbWSJQXAHBoLvTbtM+CP7eqwfBMQc0nRridvyXOPOAiAp2Zr1Ncren8n2U1XP4tWeYp1YyPBMke0BSlOFunJ0Jg=="; + "MIICujCCAl6gAwIBAgIFEFeGNUIwDAYIKoEcz1UBg3UFADBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIFRFU1QgU00yIE9DQTEwHhcNMjMxMDI2MDYwMDU5WhcNMjgxMDI2MDYwMDU5WjByMQswCQYDVQQGEwJjbjEXMBUGA1UECgwOQ0ZDQSBURVNUIE9DQTExDTALBgNVBAsMBERFTVAxGTAXBgNVBAsMEE9yZ2FuaXphdGlvbmFsLTExIDAeBgNVBAMMFzA0MUBaREVNUEBERU1QQDAwMDAwMDAxMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE3NOLwnCvPxeZxS5lUSl+fxojdYwV1mD5eDGOkPeATl88oW0Q1PuBd0aQ29HmufRamZb2BlfLhjcgS5TsKlX4qqOB9DCB8TAfBgNVHSMEGDAWgBRr/hjaj0I6prhtsy6Igzo0osEw4TBIBgNVHSAEQTA/MD0GCGCBHIbvKgEBMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2ZjYS5jb20uY24vdXMvdXMtMTQuaHRtMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly91Y3JsLmNmY2EuY29tLmNuL1NNMi9jcmw1Mzg2My5jcmwwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBSElGKzsZJ04RMd60sFqiHpxl9/njAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDAYIKoEcz1UBg3UFAANIADBFAiEAjmCCIlDNdXw0qRZe7oYrkel4wTpg++c/C+MKLbPfRpgCIEVyrM68qeuVmaFZ5ZA3TtUXQg1RYQjz/5yhl/3jhdQ9"; byte[] s = Base64.getDecoder().decode(cert); System.out.println(convertToPem(s)); }