整理代码

This commit is contained in:
cheney
2022-09-08 15:54:42 +08:00
parent b32d2d7c40
commit ce43b10cc6
10 changed files with 744 additions and 173 deletions
+51
View File
@@ -0,0 +1,51 @@
package sample;
import com.sunyard.SydApi;
import racal.sunyard.main.SydApi4j;
import racal.sunyard.main.SydApiBuilder;
public class ConnectThread extends Thread {
public SydApi getApi() {
SydApiBuilder builder = new SydApiBuilder().setIp("172.16.18.59");
SydApi4j papi = (SydApi4j) builder.build();
// SydApi4j papi = (SydApi4j) new SydApi4j().connect("172.16.18.59" , 8889, null,1000);
return papi;
}
public static void main(String[] args) {
// logger.info("测试开始");
int n = Runtime.getRuntime().availableProcessors();
int max = 1001;
Thread[] tList = new Thread[max];
for (int i = 0; i < max; i++) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "已运行");
ConnectThread stable = new ConnectThread();
SydApi api = stable.getApi();
try {
// SydApi api = stable.getApi();
} catch (Exception e) {
e.printStackTrace();
}
}
});
tList[i] = thread;
}
for (Thread t : tList) {
t.start();
}
for (Thread t : tList) {
try {
t.join();
} catch (InterruptedException e3) {
e3.printStackTrace();
}
}
}
}
+145 -26
View File
@@ -1,22 +1,60 @@
package test;
import com.sunyard.proto.Util;
import com.sunyard.sge.database.*;
import org.checkerframework.checker.units.qual.A;
import com.sunyard.sge.database.Consts;
import com.sunyard.sge.database.SydApi;
import com.sunyard.sge.database.SydApiBuilder;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
public class BatchDataTest {
private SydApi api;
private static class RandomTestData {
private int size;
private int[] keyIdx;
private List<byte[]> data;
public int[] getKeyIdx() {
return keyIdx;
}
public List<byte[]> 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() {
@@ -33,41 +71,122 @@ public class BatchDataTest {
}
@After
public void end(){
if ( null != api ) {
public void end() {
if (null != api) {
api.SYD_Disconnect_Ex();
}
}
@Test
public void batchSM4Case1(){
public void batchSM4Case1() {
// 密钥索引
int[] keyIdx = new int[]{ 0, 1, 2 , 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
// 测试数据
List<byte[]> 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] );
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<byte[]> encData = api.SYD_SM4_BatchData( keyIdx , data, Consts.ECB_ENC );
List<byte[]> orgData = api.SYD_SM4_BatchData( keyIdx , encData, Consts.ECB_DEC );
List<byte[]> encData = api.SYD_SM4_BatchData(keyIdx, data, Consts.ECB_ENC);
List<byte[]> orgData = api.SYD_SM4_BatchData(keyIdx, encData, Consts.ECB_DEC);
for ( int i = 0 ; i < data.size() ; i++ ) {
System.out.println( "HEX=" + Util.bytes2HexString( encData.get( i ) ) );
Assert.assertArrayEquals( orgData.get( i ), data.get( i ) );
for (int i = 0; i < data.size(); i++) {
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
Assert.assertArrayEquals(orgData.get(i), data.get(i));
}
}
@Test
public void batchSM4Case2() {
// 测试数据
RandomTestData data = new RandomTestData();
List<byte[]> encData = api.SYD_SM4_BatchData(data.getKeyIdx(), data.getData(), Consts.ECB_ENC);
List<byte[]> orgData = api.SYD_SM4_BatchData(data.getKeyIdx(), encData, Consts.ECB_DEC);
for (int i = 0; i < data.getSize(); i++) {
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
Assert.assertArrayEquals(orgData.get(i), data.getData().get(i));
}
}
@Test
public void batchSM4CaseZero() {
// 测试数据
RandomTestData data = new RandomTestData(0);
List<byte[]> encData = api.SYD_SM4_BatchData(data.getKeyIdx(), data.getData(), Consts.ECB_ENC);
List<byte[]> orgData = api.SYD_SM4_BatchData(data.getKeyIdx(), encData, Consts.ECB_DEC);
for (int i = 0; i < data.getSize(); i++) {
System.out.println("HEX=" + Util.bytes2HexString(encData.get(i)));
Assert.assertArrayEquals(orgData.get(i), data.getData().get(i));
}
}
@Test
public void batchMACDataCase1() {
// 密钥索引
int[] keyIdx = new int[]{0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
// 测试数据
List<byte[]> 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++) {
System.out.println("MAC[" + i + "]=" + macs[i]);
Assert.assertTrue(checks[i]);
}
}
@Test
public void batchMACData() {
// 测试数据
RandomTestData data = new 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++) {
System.out.println("MAC[" + i + "]=" + macs[i]);
Assert.assertTrue(checks[i]);
}
}
@Test
public void batchMACDataZero() {
// 测试数据
RandomTestData data = new 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++) {
System.out.println("MAC[" + i + "]=" + macs[i]);
Assert.assertTrue(checks[i]);
}
}
}