Merge remote-tracking branch 'origin/dev-1.0' into dev-1.0

# Conflicts:
#	src/main/java/com/sunyard/sge/database/SydApiSM4.java
This commit is contained in:
cheney 2022-09-01 17:21:32 +08:00
commit c5afbd661b

View File

@ -98,72 +98,14 @@ public class SydApiSM4 {
} }
} }
else { else {
if (0 == sourceWrap.array().length) { if (pcData.length/16<2){
if (plength<16||plength/16<2){
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength);
bufferResult.put(sourceWrap);
bufferResult.put(pcData);
sourceWrap = bufferResult;
return new byte[0]; return new byte[0];
} }
ByteBuffer buffer = ByteBuffer.wrap(pcData); int length=(pcData.length/16)-1;
int remainder = plength % 16; byte[] bytes = new byte[16];
int intercept = plength - remainder - 16; System.arraycopy(pcData,length*16,bytes,0,16);
byte[] bytes = new byte[intercept]; System.out.println(bytes);
ByteBuffer byteBuffer = buffer.get(bytes, 0, intercept); return null;
byte[] bytes1 = new byte[remainder];
byteBuffer.get(bytes1);
byte[] bytes2 = new byte[16];
ByteBuffer byte1 = buffer.get(bytes2,0,16);
dataResult=bytes2;
this.pcdataResult = bytes;
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + remainder);
bufferResult.put(bytes1);
sourceWrap = bufferResult;
iPkgNum = 2;
return api.SYD_SM4_LongData(iKeyIndex, pcdataResult, iPkgNum, iFlag);
} else {
if (16 > pcData.length + sourceWrap.array().length
||
(pcData.length + sourceWrap.array().length)/16<2
) {
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength);
bufferResult.put(sourceWrap.array());
bufferResult.put(pcData);
sourceWrap = bufferResult;
return new byte[0];
} else if ((pcData.length + sourceWrap.array().length) % 16 == 0) {
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength);
bufferResult.put(sourceWrap.array());
bufferResult.put(pcData);
byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult);
return api.SYD_SM4_LongData(iKeyIndex, bytes, iPkgNum, iFlag);
} else {
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength);
bufferResult.put(sourceWrap.array());
bufferResult.put(pcData);
byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult);
ByteBuffer buffer = ByteBuffer.wrap(bytes);
int remainder = bytes.length % 16;
int intercept = bytes.length - remainder - 16;
byte[] pcdataByte = new byte[intercept];
ByteBuffer byteBuffer = buffer.get(pcdataByte, 0, intercept);
byte[] bytes1 = new byte[remainder];
byteBuffer.get(bytes1);
byte[] bytes2 = new byte[16];
ByteBuffer byteBuffer2 = buffer.get(bytes2, 0, 16);
this.dataResult = bytes2;
this.pcdataResult = pcdataByte;
ByteBuffer bufferResults = ByteBuffer.allocate(remainder);
bufferResults.put(bytes1);
sourceWrap = bufferResults;
iPkgNum = 2;
return api.SYD_SM4_LongData(iKeyIndex, pcdataResult, iPkgNum, iFlag);
}
}
} }
} }
@ -184,7 +126,7 @@ public class SydApiSM4 {
ByteBuffer buffer = ByteBuffer.allocate(dataResult.length+sourceWrap.array().length); ByteBuffer buffer = ByteBuffer.allocate(dataResult.length+sourceWrap.array().length);
buffer.put(dataResult); buffer.put(dataResult);
buffer.put(sourceWrap.array()); buffer.put(sourceWrap.array());
byte[] bytes = api.SYD_SM4_LongData(iKeyIndex,buffer.array(), iPkgNum, iFlag); byte[] bytes = api.SYD_SM4_LongData(iKeyIndex,dataResult, iPkgNum, iFlag);
sourceWrap = null; sourceWrap = null;
return bytes; return bytes;
} }