This commit is contained in:
cheney 2022-07-21 13:58:59 +08:00
parent 1db66d0658
commit 78fe7d9de3
6 changed files with 140 additions and 5 deletions

View File

@ -25,6 +25,10 @@
{
"func": "mkdir",
"path": "%out_path%/jar/dependences"
},
{
"func": "mkdir",
"path": "%out_path%/doc"
}
],
"dependencies": [{
@ -37,11 +41,6 @@
"gen" : [{
"cmd" : "dproto"
}],
"doc" : [{
"func" : "cp",
"from" : "./doc",
"to" : "%out_path%/doc"
}],
"build": [
{
"cmd": "mvn package -DskipTests",

View File

@ -9,6 +9,9 @@ import java.util.List;
public interface SydApi
{
void warmUpMode(boolean use);
/**
* 建立到指定地址和端口号的签名服务器的 TCP/IP 连接返回 API 操作对象 SydApi
* 如果采用短连接交易结束要调用 SydApi 的方法SYD_Disconnect_Ex 进行释放连接

View File

@ -20,6 +20,11 @@ public class SydApi4Database implements SydApi
private SydApi4j api4j = null;
@Override
public void warmUpMode(boolean use) {
this.api4j.warmUpMode( use );
}
@Override
public SydApi SYD_Connect_Ex(String[] pcIpList, int[] iPortList, int iConnectTimeOut, int iDealTimeOut) {

View File

@ -0,0 +1,119 @@
package test;
import com.sunyard.proto.Util;
import com.sunyard.sge.database.Consts;
import com.sunyard.sge.database.SydApi;
import com.sunyard.sge.database.SydApi4Database;
import org.junit.Assert;
import java.util.ArrayList;
import java.util.List;
public class Pref
{
public static void main(String[] args) throws InterruptedException {
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
final SydApi api = new SydApi4Database();
try {
api.SYD_Connect_Ex(
new String[]{ "192.168.0.200" },
new int[]{ 8889 },
10,
20
);
// api.warmUpMode( true );
// 预热
final int max = 1;
for (int i = 0; i < max; i ++) {
shortData( api );
// batchData( api );
}
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// 短数据
long st = System.currentTimeMillis();
shortData( api );
long et = System.currentTimeMillis();
System.out.println("short t1=" + ( et -st ));
// 批量
st = System.currentTimeMillis();
batchData( api );
et = System.currentTimeMillis();
System.out.println("batch t1=" + ( et -st ));
}
});
t.start();
t.join();
// api.warmUpMode( false );
// 短数据
long st = System.currentTimeMillis();
shortData( api );
long et = System.currentTimeMillis();
System.out.println("short t1=" + ( et -st ));
// 批量
st = System.currentTimeMillis();
batchData( api );
et = System.currentTimeMillis();
System.out.println("batch t1=" + ( et -st ));
} finally {
if ( null != api ) {
api.SYD_Disconnect_Ex();
}
}
}
public static void shortData(SydApi api){
// 密钥索引
int keyIdx = 0;
// 测试数据
byte[] data = new byte[16];
byte[] encData = new byte[16];
try {
encData = api.SYD_SM4_ShortData( keyIdx , data, Consts.ECB_ENC );
}catch ( Exception e){}
try {
byte[] orgData = api.SYD_SM4_ShortData( keyIdx , encData, Consts.ECB_DEC );
}catch ( Exception e){}
// System.out.println( "HEX=" + Util.bytes2HexString( encData ) );
// Assert.assertArrayEquals( orgData, data );
}
public static void batchData(SydApi api){
// 密钥索引
int[] keyIdx = new int[]{ 0, 1, 2 };
// 测试数据
List<byte[]> data = new ArrayList<>();
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 );
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 ) );
}
}
}

9
说明.txt Normal file
View File

@ -0,0 +1,9 @@
- doc 文档
- sample 示例代码
- jar
- sydapi-database-1.0.1db66d06.jar 接口 API
- dependences 所有依赖
- groovy-all-2.3.2 通信协议支持
- proto-1.0-20220412 通信协议支持
- slf4j-api-1.7.10 日志接口
- sydapi-1.12.dd63df.jar 加密机通信包