This commit is contained in:
Cheney Wong
2025-07-01 17:13:42 +08:00
parent 1775683210
commit 392efecee3
13 changed files with 360 additions and 113 deletions
@@ -157,14 +157,25 @@ public class SydApiLongLinkWrap implements SydApi {
@Override
public DataAndMac SYD_SM4_EncryptAndMac_ShortData(int iEncKeyIndex, int iMacKeyIndex, byte[] pcData) {
FutureTask<DataAndMac> task = builder.getLongLinkWorks().fTask(new Callable<DataAndMac>() {
@Override
public DataAndMac call() throws Exception {
return builder.get().SYD_SM4_EncryptAndMac_ShortData(iEncKeyIndex, iMacKeyIndex, pcData);
}
});
try {
return task.get();
FutureTask<byte[]> taskEnc = builder.getLongLinkWorks().fTask(new Callable<byte[]>() {
@Override
public byte[] call() throws Exception {
return builder.get().SYD_SM4_ShortData(iEncKeyIndex, pcData, Consts.ECB_ENC);
}
});
byte[] enData = taskEnc.get();
FutureTask<String> taskMac = builder.getLongLinkWorks().fTask(new Callable<String>() {
@Override
public String call() throws Exception {
return builder.get().SYD_SM4Mac_ShortData(iMacKeyIndex, enData);
}
});
String mac = taskMac.get();
return new DataAndMac(enData, mac);
} catch (Exception e) {
throw new SydApiException("并行任务执行失败", 0xC101, e);
}