sydapi-java-sge-database/src/main/java/com/sunyard/sge/database/SydApiSM4.java
2022-08-30 10:24:05 +08:00

90 lines
2.5 KiB
Java

package com.sunyard.sge.database;
import com.sunyard.sge.EntityCache;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SydApiSM4 {
private SydApi4Database api;
// private phHandle
byte[] pcData;
int iDataLen;
String[] pcOutData;
//多余出的字节长度
int piOutDataLen;
int key;
int endeFlag;
int ret = 0, i = 0;
int decloopnum = 0;
// int tmpdatalen = MAX_LIN * 8;
int alltmpdatalen = 0;
EntityCache entityCache = new EntityCache();
int k = 0;
byte[] bytes = new byte[k];
ByteBuffer byteBuffer;
public SydApiSM4(SydApi4Database api, int key, int endeFlag) {
this.api = api;
this.key = key;
this.endeFlag = endeFlag;
}
public byte[] update(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) {
int plength = pcData.length;
byte[] pcDatas = pcData;
if (piOutDataLen == 0) {
if (iFlag == 1) {
if (plength < 16) {
int falg = piOutDataLen;
piOutDataLen += plength;
bytes = new byte[piOutDataLen];
System.arraycopy(pcData,0,bytes,falg,pcData.length);
throw new IllegalArgumentException();
}
int index = plength % 16;
int findex = plength - index;
if (index != 0) {
pcDatas = Arrays.copyOf(pcData, findex);
int falg = piOutDataLen;
piOutDataLen += plength-findex;
bytes = new byte[piOutDataLen];
System.arraycopy(pcData,findex,bytes,falg,plength-findex);
}
byte[] bytes = api.SYD_SM4_LongData(iKeyIndex, pcDatas, iPkgNum, iFlag);
return bytes;
} else {
}
} else {
int combinationLength = piOutDataLen+ plength;
if (iFlag==1){
if (combinationLength<16){
piOutDataLen = piOutDataLen+combinationLength;
int falg = piOutDataLen;
bytes = new byte[piOutDataLen];
throw new IllegalArgumentException();
}
}
}
// byte[] bytes = api.SYD_SM4_LongData(iKeyIndex, pcData, iPkgNum, iFlag);
return null;
}
//
// public finish(){
// api.SYD_SM4_LongData();
// }
}