增加init/update/digest/finish长数据操作
This commit is contained in:
parent
35cbb5f65d
commit
4070a7dcad
@ -14,23 +14,22 @@ public interface SydApi {
|
|||||||
/**
|
/**
|
||||||
* 设置全局日志相应的配置
|
* 设置全局日志相应的配置
|
||||||
*
|
*
|
||||||
*@param pcLogPath: 输入。日志存储路径
|
* @param pcLogPath: 输入。日志存储路径
|
||||||
*@param iLogLevel: 输入。日志级别设置
|
* @param iLogLevel: 输入。日志级别设置
|
||||||
* 0:不记录日志,
|
* 0:不记录日志,
|
||||||
* 1:记录网络层错误日志,
|
* 1:记录网络层错误日志,
|
||||||
* 2:记录接口错误日志及网络层错误日志,
|
* 2:记录接口错误日志及网络层错误日志,
|
||||||
* 3:记录正确日志及错误日志
|
* 3:记录正确日志及错误日志
|
||||||
*
|
|
||||||
* @return 无
|
* @return 无
|
||||||
**/
|
**/
|
||||||
static void SYD_SetLogConfig(
|
static void SYD_SetLogConfig(
|
||||||
String pcLogPath,
|
String pcLogPath,
|
||||||
int iLogLevel) {
|
int iLogLevel) {
|
||||||
if (pcLogPath==null||iLogLevel<0||iLogLevel>3){
|
if (pcLogPath == null || iLogLevel < 0 || iLogLevel > 3) {
|
||||||
throw new IllegalArgumentException("地址不能为空且等级范围为0到3");
|
throw new IllegalArgumentException("地址不能为空且等级范围为0到3");
|
||||||
}
|
}
|
||||||
Logger logger = LogFactory.createLogger(pcLogPath, iLogLevel);
|
Logger logger = LogFactory.createLogger(pcLogPath, iLogLevel);
|
||||||
SydApi4j.setLogger( logger );
|
SydApi4j.setLogger(logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -102,14 +101,14 @@ public interface SydApi {
|
|||||||
* 长数据hash计算,对指定数据进行SM3 哈希处理。
|
* 长数据hash计算,对指定数据进行SM3 哈希处理。
|
||||||
*
|
*
|
||||||
* @param pcData:输入。要加密的数据。
|
* @param pcData:输入。要加密的数据。
|
||||||
* @param iPkgNum:输入。包序号:0 仅一包 pcHash为输出hash结果
|
* @param iPkgNum:输入。包序号:0 仅一包 pcHash为输出hash结果
|
||||||
* 1 第一包 输出过程数据pcProcData
|
* 1 第一包 输出过程数据pcProcData
|
||||||
* 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
|
* 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
|
||||||
* 3 最后一包 pcHash为输出hash结果
|
* 3 最后一包 pcHash为输出hash结果
|
||||||
* @param pcProcData:输入。过程数据 (包序号为0或1时传入null,包序号为2或3时需要有值)
|
* @param pcProcData:输入。过程数据 (包序号为0或1时传入null,包序号为2或3时需要有值)
|
||||||
* @return LongDataReturn<String, String>对象。属性如下:
|
* @return LongDataReturn<String, String>对象。属性如下:
|
||||||
* procData:过程数据 (包序号为1或2时有值)字符串格式
|
* procData:过程数据 (包序号为1或2时有值)字符串格式
|
||||||
* data:哈希值(固定长度32字节)转HEX 字符串格式
|
* data:哈希值(固定长度32字节)转HEX 字符串格式
|
||||||
*/
|
*/
|
||||||
LongDataReturn<String, String> SYD_SM3_Hash_LongData(
|
LongDataReturn<String, String> SYD_SM3_Hash_LongData(
|
||||||
byte[] pcData,
|
byte[] pcData,
|
||||||
@ -118,7 +117,6 @@ public interface SydApi {
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短数据加解密
|
* 短数据加解密
|
||||||
* <p>
|
* <p>
|
||||||
@ -158,10 +156,9 @@ public interface SydApi {
|
|||||||
* 输入对指定的原始数据和公钥,通过 SM4 算法计算数据的散列值。
|
* 输入对指定的原始数据和公钥,通过 SM4 算法计算数据的散列值。
|
||||||
*
|
*
|
||||||
* @param iKeyIndex:输入。会话密钥索引值
|
* @param iKeyIndex:输入。会话密钥索引值
|
||||||
* @param pcData: 输入。要加密的数据。(数据的长度第一包以及中间包时需为16的整数倍)
|
* @param pcData: 输入。要加密的数据。(数据的长度第一包以及中间包时需为16的整数倍)
|
||||||
* @param iPkgNum:输入。包序号:0:仅一包,1:第一包,2:中间包,3:结束包
|
* @param iPkgNum:输入。包序号:0:仅一包,1:第一包,2:中间包,3:结束包
|
||||||
* @param iFlag:输入。加解密标识,0:表示ECB解密;1:表示ECB加密
|
* @param iFlag:输入。加解密标识,0:表示ECB解密;1:表示ECB加密
|
||||||
*
|
|
||||||
* @return 输出数据;
|
* @return 输出数据;
|
||||||
*/
|
*/
|
||||||
byte[] SYD_SM4_LongData(
|
byte[] SYD_SM4_LongData(
|
||||||
@ -171,19 +168,25 @@ public interface SydApi {
|
|||||||
int iFlag
|
int iFlag
|
||||||
);
|
);
|
||||||
|
|
||||||
|
byte[] SYD_SM4_LongData2(
|
||||||
|
int iKeyIndex,
|
||||||
|
byte[] pcData,
|
||||||
|
int iPkgNum,
|
||||||
|
int iFlag
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*批量数据MAC校验接口,对批量数据进行SM4 MAC计算。
|
* 批量数据MAC校验接口,对批量数据进行SM4 MAC计算。
|
||||||
*
|
*
|
||||||
* @param iKeyIndex:输入。计算mac所需要的密钥索引值数组
|
* @param iKeyIndex:输入。计算mac所需要的密钥索引值数组
|
||||||
* @param pcData: 输入。要做MAC的数据组
|
* @param pcData: 输入。要做MAC的数据组
|
||||||
*
|
* @return String[] 数组,长度等于 pcData List 的长度。
|
||||||
* @return String[] 数组,长度等于 pcData List 的长度。
|
* String[] 数组中的每个值为 mac值(固定长度16字节)的 HEX字符串。
|
||||||
* String[] 数组中的每个值为 mac值(固定长度16字节)的 HEX字符串。
|
|
||||||
*/
|
*/
|
||||||
String[] SYD_SM4Mac_BatchData(
|
String[] SYD_SM4Mac_BatchData(
|
||||||
int[] iKeyIndex,
|
int[] iKeyIndex,
|
||||||
List<byte[]> pcData
|
List<byte[]> pcData
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -191,16 +194,15 @@ public interface SydApi {
|
|||||||
* 对批量数据进行SM4 MAC校验。有一条数据失败则抛出异常。
|
* 对批量数据进行SM4 MAC校验。有一条数据失败则抛出异常。
|
||||||
*
|
*
|
||||||
* @param iKeyIndex:输入。计算mac所需要的密钥索引值数组
|
* @param iKeyIndex:输入。计算mac所需要的密钥索引值数组
|
||||||
* @param pcData: 输入。 要做MAC的数据组
|
* @param pcData: 输入。 要做MAC的数据组
|
||||||
* @param pcMac: 输入。输入的mac值数组组,每个 ma从(固定长度16字节)的HEX字符串。
|
* @param pcMac: 输入。输入的mac值数组组,每个 ma从(固定长度16字节)的HEX字符串。
|
||||||
*
|
|
||||||
* @return boolean[] 数组长度等于 pcData List 的长度。
|
* @return boolean[] 数组长度等于 pcData List 的长度。
|
||||||
* boolean[] 数组中的每个值为对应索引 pcData 和 pcMac 的校验结果。 true表示校验成功,false 表示校验失败。
|
* boolean[] 数组中的每个值为对应索引 pcData 和 pcMac 的校验结果。 true表示校验成功,false 表示校验失败。
|
||||||
* */
|
*/
|
||||||
boolean[] SYD_SM4Mac_BatchData(
|
boolean[] SYD_SM4Mac_BatchData(
|
||||||
int[] iKeyIndex,
|
int[] iKeyIndex,
|
||||||
List<byte[]> pcData,
|
List<byte[]> pcData,
|
||||||
String[] pcMac
|
String[] pcMac
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -209,19 +211,18 @@ public interface SydApi {
|
|||||||
*
|
*
|
||||||
* @param iKeyIndex:输入。计算mac所需要的密钥索引值
|
* @param iKeyIndex:输入。计算mac所需要的密钥索引值
|
||||||
* @param pcData:输入。要做MAC的数据
|
* @param pcData:输入。要做MAC的数据
|
||||||
* @param iPkgNum:输入。 包序号:0 仅一包 pcHash为输出hash结果
|
* @param iPkgNum:输入。 包序号:0 仅一包 pcHash为输出hash结果
|
||||||
* 1 第一包 输出过程数据pcProcData
|
* 1 第一包 输出过程数据pcProcData
|
||||||
* 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
|
* 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
|
||||||
* 3 最后一包 pcHash为输出hash结果
|
* 3 最后一包 pcHash为输出hash结果
|
||||||
*
|
* @return LongDataReturn<String, String> 的对象,
|
||||||
* @return LongDataReturn<String, String> 的对象,
|
* 属性 procData 过程数据 (包序号为1或2时有值)字符串,
|
||||||
* 属性 procData 过程数据 (包序号为1或2时有值)字符串,
|
* 属性 data 输出的mac值(固定长度16字节)HEX 字符串
|
||||||
* 属性 data 输出的mac值(固定长度16字节)HEX 字符串
|
*/
|
||||||
* */
|
|
||||||
LongDataReturn<String, String> SYD_SM4Mac_LongData(
|
LongDataReturn<String, String> SYD_SM4Mac_LongData(
|
||||||
int iKeyIndex,
|
int iKeyIndex,
|
||||||
byte[] pcData,
|
byte[] pcData,
|
||||||
int iPkgNum,
|
int iPkgNum,
|
||||||
String pcProcData
|
String pcProcData
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -229,40 +230,36 @@ public interface SydApi {
|
|||||||
/**
|
/**
|
||||||
* 长数据MAC数据校验接口,对长数据进行MAC SM4校验处理。
|
* 长数据MAC数据校验接口,对长数据进行MAC SM4校验处理。
|
||||||
*
|
*
|
||||||
*
|
|
||||||
* @param iKeyIndex:输入。计算mac所需要的密钥索引值
|
* @param iKeyIndex:输入。计算mac所需要的密钥索引值
|
||||||
* @param pcData: 输入。要做MAC的数据
|
* @param pcData: 输入。要做MAC的数据
|
||||||
* @param iPkgNum: 输入。 包序号:0 仅一包 pcHash为输出hash结果
|
* @param iPkgNum: 输入。 包序号:0 仅一包 pcHash为输出hash结果
|
||||||
* 1 第一包 输出过程数据pcProcData
|
* 1 第一包 输出过程数据pcProcData
|
||||||
* 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
|
* 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
|
||||||
* 3 最后一包 pcHash为输出hash结果
|
* 3 最后一包 pcHash为输出hash结果
|
||||||
* @param pcProcData:输入。过程数据 (包序号为1或2时有值)
|
* @param pcProcData:输入。过程数据 (包序号为1或2时有值)
|
||||||
* @param pcMac: 输入。输出的mac值(固定长度16字节) HEX 字符串
|
* @param pcMac: 输入。输出的mac值(固定长度16字节) HEX 字符串
|
||||||
*
|
|
||||||
* @return LongDataReturn<String, Boolean> 的对象
|
* @return LongDataReturn<String, Boolean> 的对象
|
||||||
* 属性 procData 过程数据 (包序号为1或2时有值)字符串
|
* 属性 procData 过程数据 (包序号为1或2时有值)字符串
|
||||||
* 属性 data 输出的mac校验结果。Boolean 类型,true表示校验成功,false 表示校验失败。
|
* 属性 data 输出的mac校验结果。Boolean 类型,true表示校验成功,false 表示校验失败。
|
||||||
* */
|
*/
|
||||||
LongDataReturn<String, Boolean>SYD_SM4Mac_LongData(
|
LongDataReturn<String, Boolean> SYD_SM4Mac_LongData(
|
||||||
int iKeyIndex,
|
int iKeyIndex,
|
||||||
byte[] pcData,
|
byte[] pcData,
|
||||||
int iPkgNum,
|
int iPkgNum,
|
||||||
String pcProcData,
|
String pcProcData,
|
||||||
String pcMac
|
String pcMac
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短数据MAC计算接口,对数据进行SM4 MAC计算
|
* 短数据MAC计算接口,对数据进行SM4 MAC计算
|
||||||
*
|
*
|
||||||
* @param iKeyIndex:输入。计算mac所需要的密钥索引值
|
* @param iKeyIndex:输入。计算mac所需要的密钥索引值
|
||||||
* @param pcData: 输入。计算mac所需要的数据。
|
* @param pcData: 输入。计算mac所需要的数据。
|
||||||
*
|
|
||||||
* @return mac值(固定长度16字节)转HEX 字符串格式
|
* @return mac值(固定长度16字节)转HEX 字符串格式
|
||||||
* */
|
*/
|
||||||
String SYD_SM4Mac_ShortData(
|
String SYD_SM4Mac_ShortData(
|
||||||
int iKeyIndex,
|
int iKeyIndex,
|
||||||
byte[] pcData
|
byte[] pcData
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -271,14 +268,20 @@ public interface SydApi {
|
|||||||
* 短数据MAC验证接口,对数据进行SM4 MAC校验
|
* 短数据MAC验证接口,对数据进行SM4 MAC校验
|
||||||
*
|
*
|
||||||
* @param iKeyIndex:输入,计算mac所需要的密钥索引值
|
* @param iKeyIndex:输入,计算mac所需要的密钥索引值
|
||||||
* @param pcData: 输入。计算mac所需要的数据。
|
* @param pcData: 输入。计算mac所需要的数据。
|
||||||
* @param pcMac: 输入。mac值(固定长度16字节)HEX字符串
|
* @param pcMac: 输入。mac值(固定长度16字节)HEX字符串
|
||||||
*
|
|
||||||
* @return true表示校验成功,false 表示校验失败
|
* @return true表示校验成功,false 表示校验失败
|
||||||
* */
|
*/
|
||||||
boolean SYD_SM4Mac_ShortData(
|
boolean SYD_SM4Mac_ShortData(
|
||||||
int iKeyIndex,
|
int iKeyIndex,
|
||||||
byte[] pcData,
|
byte[] pcData,
|
||||||
String pcMac
|
String pcMac
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
public SydApiSM4 initSydApiSM4(int ende, int key);
|
||||||
|
|
||||||
|
public SydApiSM3 initSydApiSM3(int ende, int key);
|
||||||
|
|
||||||
|
public SydSM4Mac initSydSM4Mac(int ende, int key);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -766,4 +766,26 @@ public class SydApi4Database implements SydApi {
|
|||||||
return pcMac.equals(mac);
|
return pcMac.equals(mac);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SydApiSM4 initSydApiSM4(int ende, int key) {
|
||||||
|
|
||||||
|
return new SydApiSM4(new SydApi4Database(),ende,key);
|
||||||
|
}
|
||||||
|
public SydApiSM3 initSydApiSM3(int ende, int key) {
|
||||||
|
|
||||||
|
return new SydApiSM3(new SydApi4Database());
|
||||||
|
}
|
||||||
|
public SydSM4Mac initSydSM4Mac(int ende, int key){
|
||||||
|
|
||||||
|
return new SydSM4Mac(new SydApi4Database());
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public byte[] SYD_SM4_LongData2(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) {
|
||||||
|
SydApiSM4 sydApiSM4 = initSydApiSM4(1, pcData[0]);
|
||||||
|
byte[] update = sydApiSM4.update(iKeyIndex, pcData, iPkgNum, iFlag);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
52
src/main/java/com/sunyard/sge/database/SydApiSM3.java
Normal file
52
src/main/java/com/sunyard/sge/database/SydApiSM3.java
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package com.sunyard.sge.database;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import com.sunyard.SydApiException;
|
||||||
|
|
||||||
|
import java.lang.reflect.Array;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SydApiSM3 {
|
||||||
|
private SydApi4Database api;
|
||||||
|
private boolean is_finished = false;
|
||||||
|
private String pcProcData;
|
||||||
|
|
||||||
|
public SydApiSM3(SydApi4Database sydApi4Database) {
|
||||||
|
this.api = sydApi4Database;
|
||||||
|
}
|
||||||
|
public void update(byte[] pcData, int iPkgNum, String pcProcData) {
|
||||||
|
this.pcProcData = pcProcData;
|
||||||
|
if (is_finished){
|
||||||
|
throw new SydApiException(0);
|
||||||
|
}
|
||||||
|
if (null == pcData||0 == pcData.length) {
|
||||||
|
pcData = new byte[0];
|
||||||
|
}
|
||||||
|
if (pcData.length>4064){
|
||||||
|
throw new IllegalArgumentException();
|
||||||
|
}
|
||||||
|
if (null==pcProcData){
|
||||||
|
LongDataReturn<String, String> stringStringLongDataReturn = api.SYD_SM3_Hash_LongData(pcData, 1, null);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LongDataReturn<String, String> stringStringLongDataReturn = api.SYD_SM3_Hash_LongData(pcData, 2, pcProcData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public LongDataReturn<String, String> digest(){
|
||||||
|
if (is_finished) {
|
||||||
|
throw new SydApiException(0);
|
||||||
|
}
|
||||||
|
this.is_finished = true;
|
||||||
|
if (null == pcProcData){
|
||||||
|
return api.SYD_SM3_Hash_LongData(new byte[0], 0, null);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return api.SYD_SM3_Hash_LongData(new byte[0], 3,pcProcData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
89
src/main/java/com/sunyard/sge/database/SydApiSM4.java
Normal file
89
src/main/java/com/sunyard/sge/database/SydApiSM4.java
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
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();
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
17
src/main/java/com/sunyard/sge/database/SydSM4Mac.java
Normal file
17
src/main/java/com/sunyard/sge/database/SydSM4Mac.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.sunyard.sge.database;
|
||||||
|
|
||||||
|
public class SydSM4Mac {
|
||||||
|
private SydApi4Database api;
|
||||||
|
|
||||||
|
public SydSM4Mac(SydApi4Database api) {
|
||||||
|
this.api = api;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update(int iKeyIndex,
|
||||||
|
byte[] pcData,
|
||||||
|
int iPkgNum,
|
||||||
|
String pcProcData) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user