From c60d9421a7d75497ff3b08ac9e70072ba0c9a0b9 Mon Sep 17 00:00:00 2001 From: "junj2.liang" Date: Thu, 1 Sep 2022 18:01:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0init/update/digest/finish?= =?UTF-8?q?=E9=95=BF=E6=95=B0=E6=8D=AE=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sunyard/sge/database/SydApiSM4.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/sunyard/sge/database/SydApiSM4.java b/src/main/java/com/sunyard/sge/database/SydApiSM4.java index a04077c..544eaab 100644 --- a/src/main/java/com/sunyard/sge/database/SydApiSM4.java +++ b/src/main/java/com/sunyard/sge/database/SydApiSM4.java @@ -14,7 +14,7 @@ public class SydApiSM4 { private boolean is_finished = false; private byte[] dataResult = new byte[0]; - ByteBuffer sourceWrap = ByteBuffer.wrap(new byte[1]); + ByteBuffer sourceWrap = ByteBuffer.wrap(new byte[0]); public SydApiSM4(SydApi api, int iKeyIndex, int endeFlag) { @@ -59,9 +59,9 @@ public class SydApiSM4 { bufferResult.put(bytes1); sourceWrap = bufferResult; } - + byte[] bytes = api.SYD_SM4_LongData(iKeyIndex, pcdataResult, iPkgNum, iFlag); iPkgNum = 2; - return api.SYD_SM4_LongData(iKeyIndex, pcdataResult, iPkgNum, iFlag); + return bytes; } else { if (16 > pcData.length + sourceWrap.array().length) { @@ -75,7 +75,9 @@ public class SydApiSM4 { bufferResult.put(sourceWrap.array()); bufferResult.put(pcData); byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult); - return api.SYD_SM4_LongData(iKeyIndex, bytes, iPkgNum, iFlag); + byte[] bytes1 = api.SYD_SM4_LongData(iKeyIndex, bytes, iPkgNum, iFlag); + iPkgNum = 2; + return bytes1; } else { ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength); bufferResult.put(sourceWrap.array()); @@ -92,8 +94,10 @@ public class SydApiSM4 { ByteBuffer bufferResults = ByteBuffer.allocate(remainder); bufferResults.put(bytes1); sourceWrap = bufferResults; + + byte[] bytes2 = api.SYD_SM4_LongData(iKeyIndex, pcdataResult, iPkgNum, iFlag); iPkgNum = 2; - return api.SYD_SM4_LongData(iKeyIndex, pcdataResult, iPkgNum, iFlag); + return bytes2; } } } @@ -106,9 +110,10 @@ public class SydApiSM4 { dataResult = bytes; byte[] bytes1 = new byte[pcData.length-16]; System.arraycopy(pcData,length*16,bytes,0,16); - System.arraycopy(pcData,1,bytes1,0,pcData.length-16); + System.arraycopy(pcData,0,bytes1,0,pcData.length-16); + byte[] bytes2 = api.SYD_SM4_LongData(iKeyIndex, bytes1, iPkgNum, iFlag); iPkgNum = 2; - return api.SYD_SM4_LongData(iKeyIndex,bytes1,iPkgNum,iFlag); + return bytes2; } } @@ -126,14 +131,11 @@ public class SydApiSM4 { if (iFlag == 0){ - ByteBuffer buffer = ByteBuffer.allocate(dataResult.length+sourceWrap.array().length); - buffer.put(dataResult); - buffer.put(sourceWrap.array()); byte[] bytes = api.SYD_SM4_LongData(iKeyIndex,dataResult, iPkgNum, iFlag); sourceWrap = null; return bytes; } - byte[] bytes = api.SYD_SM4_LongData(iKeyIndex,dataResult, iPkgNum, iFlag); + byte[] bytes = api.SYD_SM4_LongData(iKeyIndex,sourceWrap.array(), iPkgNum, iFlag); sourceWrap = null; return bytes; }