全局接口

This commit is contained in:
chuzhenyang 2022-07-11 16:05:04 +08:00
parent d235d02b70
commit 2b017885b4
5 changed files with 304 additions and 23 deletions

10
pom.xml
View File

@ -27,5 +27,15 @@
<build> <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build> </build>
</project> </project>

View File

@ -0,0 +1,4 @@
package com.sunyard.sge.database;
public class LongDataReturn<T, T1> {
}

View File

@ -4,10 +4,8 @@ import java.util.List;
/** /**
* 上海黄金交易所 - 数据库加密方案 * 上海黄金交易所 - 数据库加密方案
*
*/ */
public interface SydApi public interface SydApi {
{
/** /**
* 建立到指定地址和端口号的签名服务器的 TCP/IP 连接返回 API 操作对象 SydApi * 建立到指定地址和端口号的签名服务器的 TCP/IP 连接返回 API 操作对象 SydApi
@ -33,12 +31,77 @@ public interface SydApi
void SYD_Disconnect_Ex(); void SYD_Disconnect_Ex();
// /**
// * 对指定数据进行SM4加解密处理
// *
// * @param iKeyIndex 会话密钥索引值
// * @param pcData 报文密文或明文
// * @param iFlag 加解密标识,0:表示ECB解密1:表示ECB加密
// * @return 报文明文或密文
// */
// byte[] SYD_SM4_ShortData(
// int iKeyIndex,
// byte[] pcData,
// int iFlag
// );
//
//
// /**
// * 对指定批量数据进行SM4加解密处理
// *
// * @param iKeyIndex 会话密钥索引值数组
// * @param pcData 要加密的报文明文或密文数组
// * @param iFlag 加解密标识,0:表示ECB解密1:表示ECB加密
// * @return List<byte [ ]>对象List 的长度与输入参数 pcData 的长度相同
// */
// List<byte[]> SYD_SM4_BatchData(
// int[] iKeyIndex,
// List<byte[]> pcData,
// int iFlag
// );
/** /**
* 对指定数据进行SM4加解密处理 * 短数据hash计算对指定数据进行SM3哈希处理
* @param iKeyIndex 会话密钥索引值 *
* @param pcData 报文密文或明文 * @param pcData输入原始数据
* @param iFlag 加解密标识,0:表示ECB解密1:表示ECB加密 * @return 哈希值固定长度32字节转HEX 字符串格式
* @return 报文明文或密文 */
String SYD_SM3_Hash_ShortData(
byte[] pcData
);
/**
* 长数据hash计算对指定数据进行SM3 哈希处理
*
* @param pcData输入要加密的数据
* @param iPkgNum输入包序号0 仅一包 pcHash为输出hash结果
* 1 第一包 输出过程数据pcProcData
* 2 中间包 pcProcData为输入上一包返回的过程数据输出本包返回的过程数据
* 3 最后一包 pcHash为输出hash结果
* @param pcProcData输入过程数据 包序号为0或1时传入null包序号为2或3时需要有值
* @return LongDataReturn<String, String>对象属性如下
* procData过程数据 包序号为1或2时有值字符串格式
* data哈希值固定长度32字节转HEX 字符串格式
*/
LongDataReturn<String, String> SYD_SM3_Hash_LongData(
byte[] pcData,
int iPkgNum,
String pcProcData
);
/**
* 短数据加解密
* <p>
* 输入对指定的原始数据和公钥通过 SM4 算法计算数据的散列值
*
* @param iKeyIndex 输入会话密钥索引值
* @param pcData 输入 报文密文或明文
* @param iFlag 输入加解密标识,0:表示ECB解密1:表示ECB加密
* @return 明文或密文
*/ */
byte[] SYD_SM4_ShortData( byte[] SYD_SM4_ShortData(
int iKeyIndex, int iKeyIndex,
@ -48,12 +111,15 @@ public interface SydApi
/** /**
* 对指定批量数据进行SM4加解密处理 * 批量数据加解密
* <p>
* 输入对指定的原始数据和公钥通过 SM4 算法计算数据的散列值
* *
* @param iKeyIndex 会话密钥索引值数组 * @param iKeyIndex 输入会话密钥索引值数组
* @param pcData 要加密的报文明文或密文数组 * @param pcData 输入要加密的报文明文或密文数组
* @param iFlag 加解密标识,0:表示ECB解密1:表示ECB加密 * @param iFlag: 输入加解密标识0:表示ECB解密
* @return List<byte[]>对象List 的长度与输入参数 pcData 的长度相同 * 1:表示ECB加密
* @return List<byte [ ]>对象List 的长度与输入参数 pcData 的长度相同
*/ */
List<byte[]> SYD_SM4_BatchData( List<byte[]> SYD_SM4_BatchData(
int[] iKeyIndex, int[] iKeyIndex,
@ -61,4 +127,136 @@ public interface SydApi
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<byte[]> 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<byte[]> 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<String, String> 的对象
* 属性 procData 过程数据 包序号为1或2时有值字符串
* 属性 data 输出的mac值固定长度16字节HEX 字符串
* */
LongDataReturn<String, String> 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<String, Boolean> 的对象
* 属性 procData 过程数据 包序号为1或2时有值字符串
* 属性 data 输出的mac校验结果Boolean 类型true表示校验成功false 表示校验失败
* */
LongDataReturn<String, Boolean>SYD_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
);
} }

View File

@ -24,6 +24,16 @@ public class SydApi4Database implements SydApi
} }
@Override
public String SYD_SM3_Hash_ShortData(byte[] pcData) {
return null;
}
@Override
public LongDataReturn<String, String> SYD_SM3_Hash_LongData(byte[] pcData, int iPkgNum, String pcProcData) {
return null;
}
@Override @Override
public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) { public byte[] SYD_SM4_ShortData(int iKeyIndex, byte[] pcData, int iFlag) {
return new byte[0]; return new byte[0];
@ -33,4 +43,39 @@ public class SydApi4Database implements SydApi
public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) { public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) {
return null; 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<byte[]> pcData) {
return new String[0];
}
@Override
public boolean[] SYD_SM4Mac_BatchData(int[] iKeyIndex, List<byte[]> pcData, String[] pcMac) {
return new boolean[0];
}
@Override
public LongDataReturn<String, String> SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData) {
return null;
}
@Override
public LongDataReturn<String, Boolean> 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;
}
} }

View File

@ -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) {
}
}