diff --git a/pom.xml b/pom.xml index 783690b..197e9c8 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ com.sunyard sydapi4j - 1.12.20220909-1 + 1.12.20220915 org.apache.logging.log4j diff --git a/src/test/java/sample/Sample.java b/src/test/java/sample/Sample.java index bd641a5..b458c73 100644 --- a/src/test/java/sample/Sample.java +++ b/src/test/java/sample/Sample.java @@ -20,8 +20,8 @@ public class Sample LogFactory.getiLogLevel(); // 通常单例就够了 SydApiBuilder builder = new SydApiBuilder( - new String[]{ "192.168.1.129","172.16.18.59" }, - new int[]{ 8889,8889 }, + new String[]{ "192.168.0.200"}, + new int[]{ 8889}, 10, 15 ); diff --git a/src/test/java/test/BatchDataTest.java b/src/test/java/test/BatchDataTest.java index b161896..8fff2d9 100644 --- a/src/test/java/test/BatchDataTest.java +++ b/src/test/java/test/BatchDataTest.java @@ -61,10 +61,10 @@ public class BatchDataTest { // System.setProperty("com.sunyard.sydapi4j.debug", "true"); SydApiBuilder builder = new SydApiBuilder( - new String[]{"192.168.1.129"}, + new String[]{"192.168.0.200"}, new int[]{8889}, - 20, - 30 + 30, + 50 ); api = builder.build(); diff --git a/src/test/java/test/ShortBatchDataTest.java b/src/test/java/test/ShortBatchDataTest.java new file mode 100644 index 0000000..8df1ca4 --- /dev/null +++ b/src/test/java/test/ShortBatchDataTest.java @@ -0,0 +1,265 @@ +package test; + +import com.sunyard.sge.database.Consts; +import com.sunyard.sge.database.SydApi; +import com.sunyard.sge.database.SydApi4Database; +import com.sunyard.sge.database.SydApiBuilder; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class ShortBatchDataTest { + private SydApi api; + private static class RandomTestData { + private int size; + private int[] keyIdx; + private List data; + + public int[] getKeyIdx() { + return keyIdx; + } + + public List getData() { + return data; + } + + public int getSize() { + return size; + } + + public RandomTestData(int lucky) { + this.size = lucky; + this.keyIdx = new int[lucky]; + this.data = new ArrayList<>(); + for ( int i = 0 ; i < lucky; i++ ) { + byte[] data = new byte[ new Random().nextInt(1024) ]; + new Random().nextBytes( data ); + this.data.add( data ); + } + } + public RandomTestData() { + int lucky = new Random().nextInt(100); + this.size = lucky; + this.keyIdx = new int[lucky]; + this.data = new ArrayList<>(); + for ( int i = 0 ; i < lucky; i++ ) { + byte[] data = new byte[ new Random().nextInt(1024) ]; + new Random().nextBytes( data ); + this.data.add( data ); + } + } + } + + @Before + public void init() { +// System.setProperty("com.sunyard.sydapi4j.debug", "true"); + + api =new SydApi4Database().SYD_Short_Connect_Ex(new String[]{"192.168.0.200"}, + new int[]{8889}, + 20, + 30); + } + + @After + public void end() { + if (null != api) { + api.SYD_Disconnect_Ex(); + } + } + + @org.junit.Test + public void batchSM4Case1() { + // 密钥索引 + int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组 + // 测试数据 + List data = new ArrayList<>(); + data.add(new byte[8]); + data.add(new byte[16]); + data.add(new byte[1024]); + data.add(new byte[8]); + data.add(new byte[16]); + data.add(new byte[1024]); + data.add(new byte[8]); + data.add(new byte[16]); + data.add(new byte[1024]); + data.add(new byte[8]); + data.add(new byte[16]); + data.add(new byte[1024]); + + List encData = api.SYD_SM4_BatchData(keyIdx, data, Consts.ECB_ENC); + List orgData = api.SYD_SM4_BatchData(keyIdx, encData, Consts.ECB_DEC); + + for (int i = 0; i < data.size(); i++) { + Assert.assertArrayEquals(orgData.get(i), data.get(i)); + } + } + + + + @org.junit.Test + public void batchSM4Case2() { + // 测试数据 + ShortBatchDataTest.RandomTestData data = new ShortBatchDataTest.RandomTestData(); + + List encData = api.SYD_SM4_BatchData(data.getKeyIdx(), data.getData(), Consts.ECB_ENC); + List orgData = api.SYD_SM4_BatchData(data.getKeyIdx(), encData, Consts.ECB_DEC); + + for (int i = 0; i < data.getSize(); i++) { + Assert.assertArrayEquals(orgData.get(i), data.getData().get(i)); + } + } + + @org.junit.Test + public void batchSM4Case3() { + // 密钥索引 + int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组 + // 测试数据 + List data = new ArrayList<>(); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + + List encData = api.SYD_SM4_BatchData(keyIdx, data, Consts.ECB_ENC); + List orgData = api.SYD_SM4_BatchData(keyIdx, encData, Consts.ECB_DEC); + + for (int i = 0; i < data.size(); i++) { + Assert.assertArrayEquals(orgData.get(i), data.get(i)); + } + } + + + @org.junit.Test + public void batchSM4CaseZero() { + // 测试数据 + ShortBatchDataTest.RandomTestData data = new ShortBatchDataTest.RandomTestData(0); + + List encData = api.SYD_SM4_BatchData(data.getKeyIdx(), data.getData(), Consts.ECB_ENC); + List orgData = api.SYD_SM4_BatchData(data.getKeyIdx(), encData, Consts.ECB_DEC); + + for (int i = 0; i < data.getSize(); i++) { + Assert.assertArrayEquals(orgData.get(i), data.getData().get(i)); + } + } + + @org.junit.Test + public void batchMACDataCase1() { + // 密钥索引 + int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组 + // 测试数据 + List data = new ArrayList<>(); + data.add(new byte[8]); + data.add(new byte[16]); + data.add(new byte[1024]); + data.add(new byte[8]); + data.add(new byte[16]); + data.add(new byte[1024]); + data.add(new byte[8]); + data.add(new byte[16]); + data.add(new byte[1024]); + data.add(new byte[8]); + data.add(new byte[16]); + data.add(new byte[1024]); + + String[] macs = api.SYD_SM4Mac_BatchData(keyIdx, data); + boolean[] checks = api.SYD_SM4Mac_BatchData(keyIdx, data, macs); + + for (int i = 0; i < data.size(); i++) { + Assert.assertTrue(checks[i]); + } + } + + @org.junit.Test + public void batchMACDataCase2() { + // 密钥索引 + int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组 + // 测试数据 + List data = new ArrayList<>(); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + + String[] macs = api.SYD_SM4Mac_BatchData(keyIdx, data); + boolean[] checks = api.SYD_SM4Mac_BatchData(keyIdx, data, macs); + + for (int i = 0; i < data.size(); i++) { + Assert.assertTrue(checks[i]); + } + } + + @org.junit.Test + public void batchMACData3() { + // 密钥索引 + int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组 + // 测试数据 + List data = new ArrayList<>(); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + data.add(new byte[1024]); + + String[] macs = api.SYD_SM4Mac_BatchData(keyIdx, data); + boolean[] checks = api.SYD_SM4Mac_BatchData(keyIdx, data, macs); + + for (int i = 0; i < data.size(); i++) { + Assert.assertTrue(checks[i]); + } + } + + @org.junit.Test + public void batchMACData() { + // 测试数据 + ShortBatchDataTest.RandomTestData data = new ShortBatchDataTest.RandomTestData(); + + String[] macs = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData()); + boolean[] checks = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData(), macs); + + for (int i = 0; i < data.getSize(); i++) { + Assert.assertTrue(checks[i]); + } + } + + + @Test + public void batchMACDataZero() { + // 测试数据 + ShortBatchDataTest.RandomTestData data = new ShortBatchDataTest.RandomTestData(0); + + String[] macs = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData()); + boolean[] checks = api.SYD_SM4Mac_BatchData(data.getKeyIdx(), data.getData(), macs); + + for (int i = 0; i < data.getSize(); i++) { + Assert.assertTrue(checks[i]); + } + } +}