From a5f38b4a8fd0ace04053d2fd0f2b21167d8a88c7 Mon Sep 17 00:00:00 2001 From: "junj2.liang" Date: Thu, 1 Sep 2022 10:26:48 +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 --- .../java/com/sunyard/sge/database/SydApiSM4.java | 12 +++++++----- .../java/com/sunyard/sge/database/SydSM4Mac.java | 14 ++++++-------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/sunyard/sge/database/SydApiSM4.java b/src/main/java/com/sunyard/sge/database/SydApiSM4.java index 13384be..71d5528 100644 --- a/src/main/java/com/sunyard/sge/database/SydApiSM4.java +++ b/src/main/java/com/sunyard/sge/database/SydApiSM4.java @@ -12,6 +12,7 @@ public class SydApiSM4 { private int iPkgNum = 1; private int iFlag; private boolean is_finished = false; + private byte[] dataResult = new byte[0]; ByteBuffer sourceWrap = ByteBuffer.wrap(new byte[0]); @@ -23,6 +24,7 @@ public class SydApiSM4 { public byte[] update(byte[] pcData) { this.pcdataResult = pcData; +// this.dataResult = pcData; if (null == pcData || pcData.length == 0) { return new byte[0]; } @@ -64,19 +66,19 @@ public class SydApiSM4 { } else { if (16 > pcData.length + sourceWrap.array().length) { ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + plength); - bufferResult.put(SydSM4Mac.bytebuffer2ByteArray(sourceWrap)); + 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(SydSM4Mac.bytebuffer2ByteArray(sourceWrap)); + 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(SydSM4Mac.bytebuffer2ByteArray(sourceWrap)); + bufferResult.put(sourceWrap.array()); bufferResult.put(pcData); byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult); ByteBuffer buffer = ByteBuffer.wrap(bytes); @@ -107,8 +109,8 @@ public class SydApiSM4 { this.iPkgNum = 3; } - byte[] bytes = api.SYD_SM4_LongData(iKeyIndex, pcdataResult, iPkgNum, iFlag); -// sourceWrap = null; + byte[] bytes = api.SYD_SM4_LongData(iKeyIndex,sourceWrap.array(), iPkgNum, iFlag); + sourceWrap = null; return bytes; } diff --git a/src/main/java/com/sunyard/sge/database/SydSM4Mac.java b/src/main/java/com/sunyard/sge/database/SydSM4Mac.java index 06fc0a1..4ea3009 100644 --- a/src/main/java/com/sunyard/sge/database/SydSM4Mac.java +++ b/src/main/java/com/sunyard/sge/database/SydSM4Mac.java @@ -21,7 +21,7 @@ public class SydSM4Mac { this.api = api; this.iKeyIndex = iKeyIndex; this.pcProcData = pcProcData; - this.pcMac=pcMac; +// this.pcMac=pcMac; } public SydSM4Mac(SydApi api) { @@ -80,16 +80,14 @@ public class SydSM4Mac { } else { if (16 > (pcData.length + sourceWrap.array().length)) { ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + pcData.length); - bufferResult.put(sourceWrap); + bufferResult.put(sourceWrap.array()); bufferResult.put(pcData); sourceWrap = bufferResult; } 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(sourceWrap.array()); bufferResult.put(pcData); byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult); if (null == this.pcMac || "".equals(this.pcMac)) { @@ -103,7 +101,7 @@ public class SydSM4Mac { } } else { ByteBuffer bufferResult = ByteBuffer.allocate(sourceWrap.array().length + length); - bufferResult.put(bytebuffer2ByteArray(sourceWrap)); + bufferResult.put(sourceWrap.array()); bufferResult.put(pcData); byte[] bytes = SydSM4Mac.bytebuffer2ByteArray(bufferResult); ByteBuffer buffer = ByteBuffer.wrap(bytes); @@ -142,10 +140,10 @@ public class SydSM4Mac { this.iPkgNum = 3; } if (null == this.pcMac || "".equals(this.pcMac)) { - LongDataReturn stringStringLongDataReturn = api.SYD_SM4Mac_LongData(iKeyIndex, this.pcdataResult, iPkgNum, pcProcData); + LongDataReturn stringStringLongDataReturn = api.SYD_SM4Mac_LongData(iKeyIndex, this.sourceWrap.array(), iPkgNum, pcProcData); return stringStringLongDataReturn; } else { - LongDataReturn stringBooleanLongDataReturn = api.SYD_SM4Mac_LongData(iKeyIndex, this.pcdataResult, iPkgNum, pcProcData, pcMac); + LongDataReturn stringBooleanLongDataReturn = api.SYD_SM4Mac_LongData(iKeyIndex, this.sourceWrap.array(), iPkgNum, pcProcData, pcMac); return stringBooleanLongDataReturn; }