对称运算类接口
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
/**
|
||||
* @author liulu
|
||||
* @since 2024/11/13
|
||||
*/
|
||||
@Data
|
||||
public class AppTokenReq {
|
||||
|
||||
/**
|
||||
* 平台分配的appKey
|
||||
*/
|
||||
@NotBlank
|
||||
@Size(min = 16, max = 64, message = "appKey长度必须为16-64")
|
||||
private String appKey;
|
||||
/**
|
||||
* 时间戳毫秒数,与服务器时间不能超过5分钟
|
||||
*/
|
||||
@NotNull
|
||||
private Long random;
|
||||
/**
|
||||
* 使用appKey+random+appSecret作为原文,使用appSecret作为key,根据HmacSM3算法计算得到hmac值,转为Hex编码
|
||||
*/
|
||||
@NotBlank
|
||||
@Size(min = 32, max = 64, message = "hmac长度在60-64之间")
|
||||
private String hmac;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author liulu
|
||||
* @since 2024/11/13
|
||||
*/
|
||||
@Data
|
||||
public class AppTokenResp {
|
||||
/**
|
||||
* 获取的token的值
|
||||
*/
|
||||
private String token;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Max;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author liulu
|
||||
* @since 2024/12/17
|
||||
*/
|
||||
@Data
|
||||
public class KeyCreateReq {
|
||||
|
||||
/**
|
||||
* 密钥模版编码
|
||||
*/
|
||||
@NotNull(message = "密钥模版不能为空")
|
||||
private String keyTemplateCode;
|
||||
/**
|
||||
* 生成数量
|
||||
*/
|
||||
@NotNull(message = "生成数量不能为空")
|
||||
@Max(value = 100, message = "一次最多生成100个密钥")
|
||||
private Integer genNumber;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import com.sunyard.chsm.enums.KeyCategory;
|
||||
import com.sunyard.chsm.enums.KeyStatus;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author liulu
|
||||
* @since 2024/12/17
|
||||
*/
|
||||
@Data
|
||||
public class KeyInfoQuery {
|
||||
|
||||
/**
|
||||
* 当前页
|
||||
*/
|
||||
private int pageNumber = 1;
|
||||
/**
|
||||
* 每页大小
|
||||
*/
|
||||
private int pageSize = 10;
|
||||
/**
|
||||
* 密钥状态
|
||||
*/
|
||||
private KeyStatus status;
|
||||
/**
|
||||
* 密钥类型
|
||||
*/
|
||||
private KeyCategory keyType;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liulu
|
||||
* @since 2024/12/17
|
||||
*/
|
||||
@Data
|
||||
public class KeyInfoResp {
|
||||
|
||||
/**
|
||||
* 密钥ID
|
||||
*/
|
||||
private Long KeyId;
|
||||
/**
|
||||
* 密钥算法
|
||||
*/
|
||||
private String keyAlg;
|
||||
/**
|
||||
* 密钥类型
|
||||
*/
|
||||
private String keyType;
|
||||
private String keyTypeText;
|
||||
/**
|
||||
* 密钥用途
|
||||
*/
|
||||
private List<String> keyUsages;
|
||||
private String keyUsageText;
|
||||
/**
|
||||
* 校验算法
|
||||
*/
|
||||
private String checkAlg;
|
||||
/**
|
||||
* 校验值
|
||||
*/
|
||||
private String checkValue;
|
||||
/**
|
||||
* 密钥状态
|
||||
*/
|
||||
private String status;
|
||||
private String statusText;
|
||||
/**
|
||||
* 生效时间
|
||||
*/
|
||||
private LocalDateTime effectiveTime;
|
||||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
private LocalDateTime expiredTime;
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liulu
|
||||
* @since 2024/12/17
|
||||
*/
|
||||
@Data
|
||||
public class KeyManageReq {
|
||||
|
||||
/**
|
||||
* 密钥id列表
|
||||
*/
|
||||
@Size(min = 1, max = 100, message = "密钥id列表长度在1-100之间")
|
||||
@NotNull(message = "密钥id列表不能为空")
|
||||
private List<Long> ids;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liulu
|
||||
* @since 2024/12/17
|
||||
*/
|
||||
@Data
|
||||
public class KeyUpdateReq {
|
||||
|
||||
/**
|
||||
* 密钥id列表
|
||||
*/
|
||||
@Size(min = 1, max = 100, message = "密钥id列表长度在1-100之间")
|
||||
@NotNull(message = "密钥id列表不能为空")
|
||||
private List<Long> ids;
|
||||
|
||||
/**
|
||||
* 新密钥生效时间 yyyy-MM-dd
|
||||
*/
|
||||
private LocalDate effectiveTime;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import com.sunyard.chsm.enums.AlgMode;
|
||||
import com.sunyard.chsm.enums.Padding;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
@Data
|
||||
public class SymDecryptReq {
|
||||
// 密钥ID
|
||||
@NotNull(message = "密钥ID不能为空")
|
||||
private Long keyId;
|
||||
|
||||
// 密钥索引
|
||||
@NotEmpty(message = "密钥索引不能为空")
|
||||
@Size(min = 15, max = 24, message = "密钥索引长度在15-24")
|
||||
private String keyIndex;
|
||||
|
||||
// 密文,使用Base64编码
|
||||
@NotBlank(message = "密文不能为空")
|
||||
private String cipherData;
|
||||
|
||||
// 填充方式, 默认PCKS7
|
||||
@NotNull(message = "填充方式不能为空")
|
||||
private Padding padding = Padding.PCKS7Padding;
|
||||
|
||||
// 加密模式, 默认ECB
|
||||
@NotNull(message = "加密模式不能为空")
|
||||
private AlgMode mode = AlgMode.ECB;
|
||||
|
||||
// iv,CBC模式下不能为空,Base64编码
|
||||
private String iv;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SymDecryptResp {
|
||||
// 密钥ID
|
||||
private Long keyId;
|
||||
// 密钥索引
|
||||
private String keyIndex;
|
||||
// 明文,使用Base64编码
|
||||
private String plainData;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import com.sunyard.chsm.enums.AlgMode;
|
||||
import com.sunyard.chsm.enums.Padding;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class SymEncryptReq {
|
||||
|
||||
// 密钥ID
|
||||
@NotNull(message = "密钥ID不能为空")
|
||||
private Long keyId;
|
||||
|
||||
// 待加密明文,使用Base64编码
|
||||
@NotBlank(message = "明文不能为空")
|
||||
private String plainData;
|
||||
|
||||
// 填充方式, 默认PCKS7
|
||||
private Padding padding = Padding.PCKS7Padding;
|
||||
|
||||
// 加密模式, 默认ECB
|
||||
@NotNull(message = "加密模式不能为空")
|
||||
private AlgMode mode = AlgMode.ECB;
|
||||
|
||||
// iv, CBC模式下不能为空,Base64编码
|
||||
private String iv;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SymEncryptResp {
|
||||
// 密钥ID
|
||||
private Long keyId;
|
||||
// 密钥索引
|
||||
private String keyIndex;
|
||||
|
||||
// 密文,使用Base64编码
|
||||
private String cipherData;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import com.sunyard.chsm.enums.HashAlg;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
@Data
|
||||
public class SymHmacCheckReq {
|
||||
// 密钥ID
|
||||
@NotNull(message = "密钥ID不能为空")
|
||||
private Long keyId;
|
||||
|
||||
// 密钥索引
|
||||
@NotEmpty(message = "密钥索引不能为空")
|
||||
@Size(min = 15, max = 24, message = "密钥索引长度在15-24")
|
||||
private String keyIndex;
|
||||
|
||||
// Hash算法,默认SM3
|
||||
private HashAlg hashAlg = HashAlg.SM3;
|
||||
|
||||
// 明文,使用Base64编码
|
||||
@NotBlank(message = "明文不能为空")
|
||||
private String plainData;
|
||||
|
||||
// hmac值,使用Base64编码
|
||||
@NotBlank(message = "hmac不能为空")
|
||||
private String hmac;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SymHmacCheckResp {
|
||||
|
||||
private Boolean valid;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import com.sunyard.chsm.enums.HashAlg;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class SymHmacReq {
|
||||
// 密钥ID
|
||||
@NotNull(message = "密钥ID不能为空")
|
||||
private Long keyId;
|
||||
|
||||
// 明文,使用Base64编码
|
||||
@NotBlank(message = "明文不能为空")
|
||||
private String plainData;
|
||||
|
||||
// Hash算法,默认SM3
|
||||
private HashAlg hashAlg = HashAlg.SM3;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SymHmacResp {
|
||||
// 密钥ID
|
||||
private Long keyId;
|
||||
// 密钥索引
|
||||
private String keyIndex;
|
||||
|
||||
// hmac值,使用Base64编码
|
||||
private String hmac;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import com.sunyard.chsm.enums.Padding;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
@Data
|
||||
public class SymMacCheckReq {
|
||||
// 密钥ID
|
||||
@NotNull(message = "密钥ID不能为空")
|
||||
private Long keyId;
|
||||
|
||||
// 密钥索引
|
||||
@NotEmpty(message = "密钥索引不能为空")
|
||||
@Size(min = 15, max = 24, message = "密钥索引长度在15-24")
|
||||
private String keyIndex;
|
||||
|
||||
// 填充方式, 默认PCKS7
|
||||
private Padding padding = Padding.PCKS7Padding;
|
||||
|
||||
// iv,Base64编码
|
||||
@NotBlank(message = "iv不能为空")
|
||||
private String iv;
|
||||
|
||||
// 明文,使用Base64编码
|
||||
@NotBlank(message = "明文不能为空")
|
||||
private String plainData;
|
||||
|
||||
// mac值,使用Base64编码
|
||||
@NotBlank(message = "mac不能为空")
|
||||
private String mac;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SymMacCheckResp {
|
||||
|
||||
private Boolean valid;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import com.sunyard.chsm.enums.Padding;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class SymMacReq {
|
||||
// 密钥ID
|
||||
@NotNull(message = "密钥ID不能为空")
|
||||
private Long keyId;
|
||||
|
||||
// 明文,使用Base64编码
|
||||
@NotBlank(message = "明文不能为空")
|
||||
private String plainData;
|
||||
|
||||
// 填充方式, 默认PCKS7
|
||||
private Padding padding = Padding.PCKS7Padding;
|
||||
|
||||
// iv,Base64编码
|
||||
@NotBlank(message = "iv不能为空")
|
||||
private String iv;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.sunyard.chsm.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SymMacResp {
|
||||
// 密钥ID
|
||||
private Long keyId;
|
||||
// 密钥索引
|
||||
private String keyIndex;
|
||||
|
||||
// mac值,使用Base64编码
|
||||
private String mac;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user