save
This commit is contained in:
parent
392efecee3
commit
f905cd8608
@ -3,5 +3,5 @@
|
||||
debug=false
|
||||
|
||||
# 地址列表 (格式: addX=ip:port)
|
||||
add1=127.0.0.1:8889
|
||||
add2=172.1.41.129:8889
|
||||
addr1=172.1.41.129:8889
|
||||
addr2=172.1.41.129:8889
|
||||
|
||||
2
pom.xml
2
pom.xml
@ -37,7 +37,7 @@
|
||||
<dependency>
|
||||
<groupId>com.sunyard</groupId>
|
||||
<artifactId>sydapi4j</artifactId>
|
||||
<version>1.15.20250627</version>
|
||||
<version>1.15.20250701</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
|
||||
@ -155,8 +155,7 @@ public class SydApiLongLinkWrap implements SydApi {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataAndMac SYD_SM4_EncryptAndMac_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData) {
|
||||
private DataAndMac SYD_SM4_AllInOne(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData){
|
||||
try {
|
||||
FutureTask<byte[]> taskEnc = builder.getLongLinkWorks().fTask(new Callable<byte[]>() {
|
||||
@Override
|
||||
@ -181,6 +180,75 @@ public class SydApiLongLinkWrap implements SydApi {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataAndMac SYD_SM4_EncryptAndMac_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData) {
|
||||
try {
|
||||
|
||||
return SYD_SM4_AllInOne(iEncKeyIndex, iMacKeyIndex, pcData);
|
||||
|
||||
// // 线程池忙, 使用单线程计算
|
||||
// if( builder.getLongLinkWorks().threadPoolIsBusy() ) {
|
||||
// return SYD_SM4_AllInOne(iEncKeyIndex, iMacKeyIndex, pcData);
|
||||
// }
|
||||
//
|
||||
// // 线程池不忙,使用并发计算
|
||||
//
|
||||
// // 将pcData拆分为两半,第一半16字节对齐
|
||||
// int halfLength = pcData.length / 2;
|
||||
// int alignedLength = (halfLength + 15) & ~15; // 向上取整到16的倍数
|
||||
// alignedLength = Math.min(alignedLength, pcData.length); // 不超过原始数据长度
|
||||
// if (alignedLength < 16) {
|
||||
// throw new IllegalArgumentException("数据长度不足16字节,无法对齐");
|
||||
// }
|
||||
//
|
||||
//
|
||||
// byte[] firstHalf = Arrays.copyOfRange(pcData, 0, alignedLength);
|
||||
// byte[] secondHalf = Arrays.copyOfRange(pcData, alignedLength, pcData.length);
|
||||
//
|
||||
//
|
||||
// FutureTask<byte[]> taskEnc1 = builder.getLongLinkWorks().fTask(new Callable<byte[]>() {
|
||||
// @Override
|
||||
// public byte[] call() throws Exception {
|
||||
// return builder.get().SYD_SM4_LongData( iEncKeyIndex, firstHalf, 1, Consts.ECB_ENC);
|
||||
// }
|
||||
// });
|
||||
// FutureTask<byte[]> taskEnc2 = builder.getLongLinkWorks().fTask(new Callable<byte[]>() {
|
||||
// @Override
|
||||
// public byte[] call() throws Exception {
|
||||
// return builder.get().SYD_SM4_LongData( iEncKeyIndex, secondHalf, 3, Consts.ECB_ENC);
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// byte[] enData1 = taskEnc1.get();
|
||||
// FutureTask<LongDataReturn<String, String>> taskMac = builder.getLongLinkWorks().fTask(new Callable< LongDataReturn<String, String>>() {
|
||||
// @Override
|
||||
// public LongDataReturn<String, String> call() throws Exception {
|
||||
// return builder.get().SYD_SM4Mac_LongData(iMacKeyIndex, enData1, 1, null);
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// byte[] enData2 = taskEnc2.get();
|
||||
// LongDataReturn<String, String> macProc = taskMac.get();
|
||||
// FutureTask<LongDataReturn<String, String>> taskMac2 = builder.getLongLinkWorks().fTask(new Callable<LongDataReturn<String, String>>() {
|
||||
// @Override
|
||||
// public LongDataReturn<String, String> call() throws Exception {
|
||||
// return builder.get().SYD_SM4Mac_LongData(iMacKeyIndex, enData2, 3, macProc.getProcData());
|
||||
// }
|
||||
// });
|
||||
// LongDataReturn<String, String> mac = taskMac.get();
|
||||
//
|
||||
// // 合并密文
|
||||
// byte[] enData = new byte[enData1.length + enData2.length];
|
||||
// System.arraycopy(enData1, 0, enData, 0, enData1.length);
|
||||
// System.arraycopy(enData2, 0, enData, enData1.length, enData2.length);
|
||||
//
|
||||
//
|
||||
// return new DataAndMac(enData, mac.getData());
|
||||
} catch (Exception e) {
|
||||
throw new SydApiException("并行任务执行失败", 0xC101, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataAndMacCheck SYD_SM4_CheckMacAndDecrypt_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData, String mac) {
|
||||
FutureTask<DataAndMacCheck> task = builder.getLongLinkWorks().fTask(new Callable<DataAndMacCheck>() {
|
||||
|
||||
@ -10,7 +10,7 @@ public class CommWorker {
|
||||
// 连接池配置
|
||||
private final PoolConfig poolConfig;
|
||||
// 真正的通信线程
|
||||
private final ExecutorService threadPool;
|
||||
private final ThreadPoolExecutor threadPool;
|
||||
|
||||
public CommWorker(){
|
||||
this( new PoolConfig() );
|
||||
@ -26,6 +26,12 @@ public class CommWorker {
|
||||
);
|
||||
}
|
||||
|
||||
public boolean threadPoolIsBusy() {
|
||||
// 返回线程池
|
||||
return threadPool.getActiveCount() > (poolConfig.getMaxAliveNumber() / 2);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 执行一个异步任务
|
||||
* @param callable
|
||||
|
||||
14
说明.txt
14
说明.txt
@ -20,3 +20,17 @@ sydapi4j-1.0.20220906.jar
|
||||
- log4j-api-2.17.0.jar 日志接口
|
||||
- log4j-core-2.17.0.jar 日志核心包
|
||||
- sydapi4j-1.0.20220805.jar 加密机通信包
|
||||
|
||||
|
||||
|
||||
linux测试服务器
|
||||
电口:172.1.10.245
|
||||
光口:192.168.100.245
|
||||
|
||||
金交所(非信创-4.07版本):
|
||||
电口:172.1.41.216
|
||||
光口:192.168.110.240
|
||||
|
||||
金交所(信创-11.01.01版本):
|
||||
电口:172.1.41.129
|
||||
光口:192.168.100.45
|
||||
Loading…
Reference in New Issue
Block a user