增加init/update/digest/finish长数据操作

This commit is contained in:
junj2.liang 2022-08-31 17:23:02 +08:00
parent fde8ad86e9
commit 8045e91bcc
2 changed files with 14 additions and 10 deletions

View File

@ -68,13 +68,13 @@ public class SydApiSM4 {
sourceWrap = bufferResult; sourceWrap = bufferResult;
} else if ((pcData.length + sourceWrap.array().length) % 16 == 0) { } else if ((pcData.length + sourceWrap.array().length) % 16 == 0) {
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength); ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength);
bufferResult.put(sourceWrap); bufferResult.put(SydSM4Mac.bytebuffer2ByteArray(sourceWrap));
bufferResult.put(pcData); bufferResult.put(pcData);
byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult); byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult);
api.SYD_SM4_LongData(iKeyIndex, bytes, iPkgNum, iFlag); api.SYD_SM4_LongData(iKeyIndex, bytes, iPkgNum, iFlag);
} else { } else {
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength); ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength);
bufferResult.put(sourceWrap); bufferResult.put(SydSM4Mac.bytebuffer2ByteArray(sourceWrap));
bufferResult.put(pcData); bufferResult.put(pcData);
byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult); byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult);
ByteBuffer buffer = ByteBuffer.wrap(bytes); ByteBuffer buffer = ByteBuffer.wrap(bytes);

View File

@ -78,14 +78,18 @@ public class SydSM4Mac {
iPkgNum = 2; iPkgNum = 2;
} }
} else { } else {
if (16 > pcData.length + sourceWrap.array().length) { if (16 > (pcData.length + sourceWrap.array().length)) {
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + length); ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + pcData.length);
bufferResult.put(sourceWrap); bufferResult.put(sourceWrap);
bufferResult.put(pcData); bufferResult.put(pcData);
sourceWrap = bufferResult; sourceWrap = bufferResult;
} else if ((pcData.length + sourceWrap.array().length) % 16 == 0) { }
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + length);
bufferResult.put(sourceWrap); else if (16<=(pcData.length + sourceWrap.array().length)&&(pcData.length + sourceWrap.array().length) % 16 == 0) {
int k2 = sourceWrap.array().length+pcData.length;
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + pcData.length);
byte[] bytes1 = bytebuffer2ByteArray(sourceWrap);
bufferResult.put(bytes1);
bufferResult.put(pcData); bufferResult.put(pcData);
byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult); byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult);
if (null == this.pcMac || "".equals(this.pcMac)) { if (null == this.pcMac || "".equals(this.pcMac)) {
@ -99,7 +103,7 @@ public class SydSM4Mac {
} }
} else { } else {
ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + length); ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + length);
bufferResult.put(sourceWrap); bufferResult.put(bytebuffer2ByteArray(sourceWrap));
bufferResult.put(pcData); bufferResult.put(pcData);
byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult); byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult);
ByteBuffer buffer = ByteBuffer.wrap(bytes); ByteBuffer buffer = ByteBuffer.wrap(bytes);
@ -126,8 +130,6 @@ public class SydSM4Mac {
} }
return this; return this;
} }
public LongDataReturn disget() { public LongDataReturn disget() {
if (is_finished) { if (is_finished) {
@ -146,6 +148,7 @@ public class SydSM4Mac {
LongDataReturn<String, Boolean> stringBooleanLongDataReturn = api.SYD_SM4Mac_LongData(iKeyIndex, this.pcdataResult, iPkgNum, pcProcData, pcMac); LongDataReturn<String, Boolean> stringBooleanLongDataReturn = api.SYD_SM4Mac_LongData(iKeyIndex, this.pcdataResult, iPkgNum, pcProcData, pcMac);
return stringBooleanLongDataReturn; return stringBooleanLongDataReturn;
} }
} }
public static byte[] bytebuffer2ByteArray(ByteBuffer buffer) { public static byte[] bytebuffer2ByteArray(ByteBuffer buffer) {
@ -161,4 +164,5 @@ public class SydSM4Mac {
} }
return bytes; return bytes;
} }
} }