From a24b67351ba5e103a2ecbc63e1d16adf944991fd Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 19 Oct 2023 15:01:31 +0800
Subject: [PATCH] 增加验签方法
---
skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/IPwdSendService.java | 2 ++
skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/impl/PwdSendServiceImpl.java | 5 +++++
skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/feign/PwdClient.java | 5 +++++
skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/util/PwdSendRequestUtil.java | 29 +++++++++++++++++++++++++++++
skjcmanager/skjcmanager-service-api/skjcmanager-pwd-api/src/main/java/cn/gistack/pwd/fegin/IPwdClient.java | 4 ++++
5 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-pwd-api/src/main/java/cn/gistack/pwd/fegin/IPwdClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-pwd-api/src/main/java/cn/gistack/pwd/fegin/IPwdClient.java
index 8e129cd..4c2ec2a 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-pwd-api/src/main/java/cn/gistack/pwd/fegin/IPwdClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-pwd-api/src/main/java/cn/gistack/pwd/fegin/IPwdClient.java
@@ -22,12 +22,16 @@
String API_PREFIX = "/client";
String GET_CBCMACENCIPHER = API_PREFIX + "/getCBCMacEncipher";
+ String GET_CBCMACENCIPHER_VERIFY = API_PREFIX + "/getCBCMacEncipherVerify";
String GET_ENCRYPT = API_PREFIX + "/getEncrypt";
String GET_DECRYPT = API_PREFIX + "/getDecrypt";
@PostMapping(GET_CBCMACENCIPHER)
R<CBCResultDTO> getCBCMacEncipher(@RequestParam("message")String message);
+ @PostMapping(GET_CBCMACENCIPHER_VERIFY)
+ R<CBCResultDTO> getCBCMacEncipherVerify(@RequestParam("sm4Iv")String sm4Iv, @RequestParam("keyIndex")String keyIndex, @RequestParam("message")String message);
+
@PostMapping(GET_ENCRYPT)
R<ResultDTO> getEncrypt(@RequestParam("sm4Iv")String sm4Iv, @RequestParam("keyIndex")String keyIndex, @RequestParam("message")String message);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/feign/PwdClient.java b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/feign/PwdClient.java
index b848287..ae9098b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/feign/PwdClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/feign/PwdClient.java
@@ -31,6 +31,11 @@
}
@Override
+ public R<CBCResultDTO> getCBCMacEncipherVerify(String sm4Iv, String keyIndex, String message) {
+ return R.data(pwdSendService.getCBCMacEncipher(sm4Iv, keyIndex, message));
+ }
+
+ @Override
@PostMapping(GET_ENCRYPT)
public R<ResultDTO> getEncrypt(String sm4Iv, String keyIndex, String message) {
return R.data(pwdSendService.getEncrypt(sm4Iv,keyIndex,message));
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/IPwdSendService.java b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/IPwdSendService.java
index ed6f2d4..f27a5b1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/IPwdSendService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/IPwdSendService.java
@@ -17,6 +17,8 @@
*/
CBCResultDTO getCBCMacEncipher(String message);
+ CBCResultDTO getCBCMacEncipher(String sm4Iv, String keyIndex, String message);
+
ResultDTO getEncrypt(String sm4Iv, String keyIndex, String message);
ResultDTO getDecrypt(String sm4Iv, String keyIndex, String message);
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/impl/PwdSendServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/impl/PwdSendServiceImpl.java
index 14c3488..eee21ee 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/impl/PwdSendServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/service/impl/PwdSendServiceImpl.java
@@ -25,6 +25,11 @@
}
@Override
+ public CBCResultDTO getCBCMacEncipher(String sm4Iv, String keyIndex, String message) {
+ return pwdSendRequestUtil.getCBCMacEncipher(sm4Iv, keyIndex, message);
+ }
+
+ @Override
public ResultDTO getEncrypt(String sm4Iv, String keyIndex, String message) {
return pwdSendRequestUtil.getEncrypt(sm4Iv, keyIndex, message);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/util/PwdSendRequestUtil.java b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/util/PwdSendRequestUtil.java
index 257f407..deb117d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/util/PwdSendRequestUtil.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-pwd/src/main/java/cn/gistack/pwd/util/PwdSendRequestUtil.java
@@ -101,6 +101,35 @@
}
/**
+ * CBC加密 用户验证方法
+ *
+ * @param message keyIndex:密钥 sm4IV:base64后的16字节字符串 maced:MAC计算值
+ * @return
+ */
+ public CBCResultDTO getCBCMacEncipher(String sm4Iv, String keyIndex, String message) {
+
+ String url = urlPrefix + "/api/Http/scm";
+
+
+ JSONObject jsonParm = new JSONObject();
+ jsonParm.put("Action", "CBCMac");
+ jsonParm.put("DeviceType", "SCM");
+
+ JSONObject targetJson = new JSONObject();
+ targetJson.put("TimeStamp", String.valueOf(System.currentTimeMillis()));
+ targetJson.put("Token", getToken());
+ targetJson.put("KeyIndex", keyIndex);
+ targetJson.put("Message", message);
+ targetJson.put("Sm4IV", sm4Iv);
+
+ jsonParm.put("Target", targetJson);
+
+ ResultDTO ret = apiRequest(url, jsonParm.toJSONString());
+
+ return new CBCResultDTO(getKeyIndex(), sm4Iv, ret.getData());
+ }
+
+ /**
* 加密
* @param sm4Iv 算法为SM4时需要填写,16字节字符串
* @param keyIndex 密钥
--
Gitblit v1.9.3