SYD_SM3_Hash_LongData(
+ byte[] pcData,
+ int iPkgNum,
+ String pcProcData
+ );
+
+
+
+ /**
+ * 短数据加解密
+ *
+ * 输入对指定的原始数据和公钥,通过 SM4 算法计算数据的散列值。
+ *
+ * @param iKeyIndex: 输入。会话密钥索引值
+ * @param pcData: 输入。 报文密文或明文。
+ * @param iFlag: 输入。加解密标识,0:表示ECB解密;1:表示ECB加密
+ * @return 明文或密文
*/
byte[] SYD_SM4_ShortData(
- int iKeyIndex,
+ int iKeyIndex,
byte[] pcData,
- int iFlag
+ int iFlag
);
/**
- * 对指定批量数据进行SM4加解密处理。
+ * 批量数据加解密
+ *
+ * 输入对指定的原始数据和公钥,通过 SM4 算法计算数据的散列值。
*
- * @param iKeyIndex 会话密钥索引值数组
- * @param pcData 要加密的报文明文或密文数组。
- * @param iFlag 加解密标识,0:表示ECB解密;1:表示ECB加密
- * @return List对象,List 的长度与输入参数 pcData 的长度相同。
+ * @param iKeyIndex: 输入。会话密钥索引值数组
+ * @param pcData: 输入。要加密的报文明文或密文数组。
+ * @param iFlag: 输入。加解密标识,0:表示ECB解密;
+ * 1:表示ECB加密
+ * @return List对象,List 的长度与输入参数 pcData 的长度相同。
*/
List SYD_SM4_BatchData(
- int[] iKeyIndex,
+ int[] iKeyIndex,
List pcData,
- int iFlag
+ int iFlag
);
+ /**
+ * 长数据加解密
+ * 输入对指定的原始数据和公钥,通过 SM4 算法计算数据的散列值。
+ *
+ * @param iKeyIndex:输入。会话密钥索引值
+ * @param pcData: 输入。要加密的数据。(数据的长度第一包以及中间包时需为16的整数倍)
+ * @param iPkgNum:输入。包序号:0:仅一包,1:第一包,2:中间包,3:结束包
+ * @param iFlag:输入。加解密标识,0:表示ECB解密;1:表示ECB加密
+ *
+ * @return 输出数据;
+ */
+ byte[] SYD_SM4_LongData(
+ int iKeyIndex,
+ byte[] pcData,
+ int iPkgNum,
+ int iFlag
+ );
+
+
+ /**
+ *批量数据MAC校验接口,对批量数据进行SM4 MAC计算。
+ *
+ * @param iKeyIndex:输入。计算mac所需要的密钥索引值数组
+ * @param pcData: 输入。要做MAC的数据组
+ *
+ * @return String[] 数组,长度等于 pcData List 的长度。
+ * String[] 数组中的每个值为 mac值(固定长度16字节)的 HEX字符串。
+ */
+ String[] SYD_SM4Mac_BatchData(
+ int[] iKeyIndex,
+ List pcData
+ );
+
+
+ /**
+ * 对批量数据进行SM4 MAC校验。有一条数据失败则抛出异常。
+ *
+ * @param iKeyIndex:输入。计算mac所需要的密钥索引值数组
+ * @param pcData: 输入。 要做MAC的数据组
+ * @param pcMac: 输入。输入的mac值数组组,每个 ma从(固定长度16字节)的HEX字符串。
+ *
+ * @return boolean[] 数组长度等于 pcData List 的长度。
+ * boolean[] 数组中的每个值为对应索引 pcData 和 pcMac 的校验结果。 true表示校验成功,false 表示校验失败。
+ * */
+ boolean[] SYD_SM4Mac_BatchData(
+ int[] iKeyIndex,
+ List pcData,
+ String[] pcMac
+ );
+
+
+ /**
+ * 长数据mac计算接口,对数据进行SM4 MAC计算。
+ *
+ * @param iKeyIndex:输入。计算mac所需要的密钥索引值
+ * @param pcData:输入。要做MAC的数据
+ * @param iPkgNum:输入。 包序号:0 仅一包 pcHash为输出hash结果
+ * 1 第一包 输出过程数据pcProcData
+ * 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
+ * 3 最后一包 pcHash为输出hash结果
+ *
+ * @return LongDataReturn 的对象,
+ * 属性 procData 过程数据 (包序号为1或2时有值)字符串,
+ * 属性 data 输出的mac值(固定长度16字节)HEX 字符串
+ * */
+ LongDataReturn SYD_SM4Mac_LongData(
+ int iKeyIndex,
+ byte[] pcData,
+ int iPkgNum,
+ String pcProcData
+ );
+
+
+ /**
+ * 长数据MAC数据校验接口,对长数据进行MAC SM4校验处理。
+ *
+ *
+ * @param iKeyIndex:输入。计算mac所需要的密钥索引值
+ * @param pcData: 输入。要做MAC的数据
+ * @param iPkgNum: 输入。 包序号:0 仅一包 pcHash为输出hash结果
+ * 1 第一包 输出过程数据pcProcData
+ * 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
+ * 3 最后一包 pcHash为输出hash结果
+ * @param pcProcData:输入。过程数据 (包序号为1或2时有值)
+ * @param pcMac: 输入。输出的mac值(固定长度16字节) HEX 字符串
+ *
+ * @return LongDataReturn 的对象
+ * 属性 procData 过程数据 (包序号为1或2时有值)字符串
+ * 属性 data 输出的mac校验结果。Boolean 类型,true表示校验成功,false 表示校验失败。
+ * */
+ LongDataReturnSYD_SM4Mac_LongData(
+ int iKeyIndex,
+ byte[] pcData,
+ int iPkgNum,
+ String pcProcData,
+ String pcMac
+ );
+
+
+
+ /**
+ * 短数据MAC计算接口,对数据进行SM4 MAC计算
+ *
+ * @param iKeyIndex:输入。计算mac所需要的密钥索引值
+ * @param pcData: 输入。计算mac所需要的数据。
+ *
+ * @return mac值(固定长度16字节)转HEX 字符串格式
+ * */
+ String SYD_SM4Mac_ShortData(
+ int iKeyIndex,
+ byte[] pcData
+ );
+
+
+ /**
+ * 短数据MAC验证接口,对数据进行SM4 MAC校验
+ *
+ * @param iKeyIndex:输入,计算mac所需要的密钥索引值
+ * @param pcData: 输入。计算mac所需要的数据。
+ * @param pcMac: 输入。mac值(固定长度16字节)HEX字符串
+ *
+ * @return true表示校验成功,false 表示校验失败
+ * */
+ boolean SYD_SM4Mac_ShortData(
+ int iKeyIndex,
+ byte[] pcData,
+ String pcMac
+ );
+
+
+
+
}
diff --git a/src/main/java/com/sunyard/sge/database/SydApi4Database.java b/src/main/java/com/sunyard/sge/database/SydApi4Database.java
index 37feaff..6e54f40 100644
--- a/src/main/java/com/sunyard/sge/database/SydApi4Database.java
+++ b/src/main/java/com/sunyard/sge/database/SydApi4Database.java
@@ -24,6 +24,16 @@ public class SydApi4Database implements SydApi
}
+ @Override
+ public String SYD_SM3_Hash_ShortData(byte[] pcData) {
+ return null;
+ }
+
+ @Override
+ public LongDataReturn SYD_SM3_Hash_LongData(byte[] pcData, int iPkgNum, String pcProcData) {
+ return null;
+ }
+
@Override
public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) {
return new byte[0];
@@ -33,4 +43,39 @@ public class SydApi4Database implements SydApi
public List SYD_SM4_BatchData(int[] iKeyIndex, List pcData, int iFlag) {
return null;
}
+
+ @Override
+ public byte[] SYD_SM4_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) {
+ return new byte[0];
+ }
+
+ @Override
+ public String[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List pcData) {
+ return new String[0];
+ }
+
+ @Override
+ public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List pcData, String[] pcMac) {
+ return new boolean[0];
+ }
+
+ @Override
+ public LongDataReturn SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData) {
+ return null;
+ }
+
+ @Override
+ public LongDataReturn SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData, String pcMac) {
+ return null;
+ }
+
+ @Override
+ public String SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData) {
+ return null;
+ }
+
+ @Override
+ public boolean SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData, String pcMac) {
+ return false;
+ }
}
diff --git a/src/main/java/com/sunyard/sge/database/SydConfigApi.java b/src/main/java/com/sunyard/sge/database/SydConfigApi.java
new file mode 100644
index 0000000..02cbd7e
--- /dev/null
+++ b/src/main/java/com/sunyard/sge/database/SydConfigApi.java
@@ -0,0 +1,24 @@
+package com.sunyard.sge.database;
+/**
+ *
+ * 日志配置接口
+ * */
+public interface SydConfigApi {
+
+ /**
+ * 设置日志相应的配置
+ *
+ *@param pcLogPath: 输入。日志存储路径
+ *@param iLogPathLen: 输入。日志路径长度。
+ *@param iLogLevel: 输入。日志级别设置 0:不记录日志,1:记录网络层错误日志,2:记录接口错误日志及网络层错误日志,3:记录正确日志及错误日志
+ *
+ * @return null
+ * */
+
+ static void SYD_SetLogConfig(
+ String pcLogPath,
+ int iLogPathLen,
+ int iLogLevel) {
+
+ }
+}