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