Sfoglia il codice sorgente

feat: 新增SM2、SM3签名算法

huangzqa 4 anni fa
parent
commit
463f26e7e1

+ 14 - 4
dcuc-duceap-service/src/main/java/com/dragoninfo/dcuc/duceap/facade/GmSignFacade.java

@@ -41,22 +41,32 @@ public class GmSignFacade implements IGmSignFacade {
 
 
     @Override
     @Override
     public ResponseStatus gmSm2Verify(String origin, String sign) {
     public ResponseStatus gmSm2Verify(String origin, String sign) {
-        return gmVerifyService.gmSm2Verify(origin,sign);
+        return gmVerifyService.gmSm2Verify(origin, sign);
     }
     }
 
 
     @Override
     @Override
     public ResponseStatus gmSm3Verify(String origin, String digest) {
     public ResponseStatus gmSm3Verify(String origin, String digest) {
-        return gmVerifyService.gmSm3Verify(origin,digest);
+        return gmVerifyService.gmSm3Verify(origin, digest);
     }
     }
 
 
     @Override
     @Override
-    public ResponseDTO gmSm4Decode(String encode) {
+    public ResponseDTO<String> gmSm4Decode(String encode) {
         return gmVerifyService.gmSm4Decode(encode);
         return gmVerifyService.gmSm4Decode(encode);
     }
     }
 
 
     @Override
     @Override
-    public ResponseDTO gmSm4Encode(String origin) {
+    public ResponseDTO<String> gmSm4Encode(String origin) {
         return gmVerifyService.gmSm4Encode(origin);
         return gmVerifyService.gmSm4Encode(origin);
     }
     }
 
 
+    @Override
+    public ResponseDTO<String> gmSm2Sign(String origin) {
+        return gmVerifyService.gmSm2Sign(origin);
+    }
+
+    @Override
+    public ResponseDTO<String> gmSm3Digest(String origin) {
+        return gmVerifyService.gmSm3Digest(origin);
+    }
+
 }
 }

+ 23 - 3
dcuc-duceap-service/src/main/java/com/dragoninfo/dcuc/duceap/service/IGmVerifyService.java

@@ -11,14 +11,16 @@ public interface IGmVerifyService {
 
 
     /**
     /**
      * 国密不可否认性校验
      * 国密不可否认性校验
+     *
      * @param origin 原文
      * @param origin 原文
-     * @param sign 签名数据
+     * @param sign   签名数据
      * @return
      * @return
      */
      */
     ResponseStatus gmSm2Verify(String origin, String sign);
     ResponseStatus gmSm2Verify(String origin, String sign);
 
 
     /**
     /**
      * 国密完整性校验
      * 国密完整性校验
+     *
      * @param origin 原文
      * @param origin 原文
      * @param digest 摘要数据
      * @param digest 摘要数据
      * @return
      * @return
@@ -27,15 +29,33 @@ public interface IGmVerifyService {
 
 
     /**
     /**
      * 国密机密性接口解密
      * 国密机密性接口解密
+     *
      * @param encode 加密数据
      * @param encode 加密数据
      * @return
      * @return
      */
      */
-    ResponseDTO gmSm4Decode(String encode);
+    ResponseDTO<String> gmSm4Decode(String encode);
 
 
     /**
     /**
      * 国密机密性接口解密
      * 国密机密性接口解密
+     *
      * @param origin 原文数据
      * @param origin 原文数据
      * @return
      * @return
      */
      */
-    ResponseDTO gmSm4Encode(String origin);
+    ResponseDTO<String> gmSm4Encode(String origin);
+
+    /**
+     * 生成SM2签名
+     *
+     * @param origin 原文
+     * @return 签名
+     */
+    ResponseDTO<String> gmSm2Sign(String origin);
+
+    /**
+     * 生成SM3摘要
+     *
+     * @param origin 原文
+     * @return 摘要
+     */
+    ResponseDTO<String> gmSm3Digest(String origin);
 }
 }

+ 29 - 13
dcuc-duceap-service/src/main/java/com/dragoninfo/dcuc/duceap/service/impl/GmVerifyServiceImpl.java

@@ -1,7 +1,6 @@
 package com.dragoninfo.dcuc.duceap.service.impl;
 package com.dragoninfo.dcuc.duceap.service.impl;
 
 
-import com.dragoninfo.dcuc.common.exception.GmIntegrityException;
-import com.dragoninfo.dcuc.common.exception.GmNonRepudiationException;
+import com.dragoninfo.dcuc.common.utils.ResponseUtil;
 import com.dragoninfo.dcuc.duceap.service.IGmVerifyService;
 import com.dragoninfo.dcuc.duceap.service.IGmVerifyService;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
@@ -13,6 +12,7 @@ import org.springframework.stereotype.Service;
 
 
 /**
 /**
  * 国密算法校验service
  * 国密算法校验service
+ *
  * @author mazq
  * @author mazq
  * @date 2021/5/11
  * @date 2021/5/11
  */
  */
@@ -20,19 +20,19 @@ import org.springframework.stereotype.Service;
 public class GmVerifyServiceImpl implements IGmVerifyService {
 public class GmVerifyServiceImpl implements IGmVerifyService {
 
 
     @Autowired
     @Autowired
-    SM2SignStrategy sm2SignStrategy;
+    private SM2SignStrategy sm2SignStrategy;
 
 
     @Autowired
     @Autowired
-    SM3SignStrategy sm3SignStrategy;
+    private SM3SignStrategy sm3SignStrategy;
 
 
     @Autowired
     @Autowired
-    SM4DESStrategy sm4DesStrategy;
+    private SM4DESStrategy sm4DesStrategy;
 
 
     @Override
     @Override
     public ResponseStatus gmSm2Verify(String origin, String sign) {
     public ResponseStatus gmSm2Verify(String origin, String sign) {
         boolean verify = sm2SignStrategy.verify(origin, sign);
         boolean verify = sm2SignStrategy.verify(origin, sign);
-        if(!verify){
-            throw  new GmNonRepudiationException();
+        if (!verify) {
+            return ResponseStatus.fail();
         }
         }
         return ResponseStatus.success();
         return ResponseStatus.success();
     }
     }
@@ -40,21 +40,37 @@ public class GmVerifyServiceImpl implements IGmVerifyService {
     @Override
     @Override
     public ResponseStatus gmSm3Verify(String origin, String digest) {
     public ResponseStatus gmSm3Verify(String origin, String digest) {
         boolean verify = sm3SignStrategy.verify(origin, digest);
         boolean verify = sm3SignStrategy.verify(origin, digest);
-        if(!verify){
-            throw new GmIntegrityException();
+        if (!verify) {
+            return ResponseStatus.fail();
         }
         }
         return ResponseStatus.success();
         return ResponseStatus.success();
     }
     }
 
 
     @Override
     @Override
-    public ResponseDTO gmSm4Decode(String encode) {
+    public ResponseDTO<String> gmSm4Decode(String encode) {
         String dec = sm4DesStrategy.dec(encode);
         String dec = sm4DesStrategy.dec(encode);
-        return ResponseDTO.success(ResponseStatus.SUCCESS_CODE,dec);
+        return ResponseUtil.newInstance(dec);
     }
     }
 
 
     @Override
     @Override
-    public ResponseDTO gmSm4Encode(String origin) {
+    public ResponseDTO<String> gmSm4Encode(String origin) {
         String enc = sm4DesStrategy.enc(origin);
         String enc = sm4DesStrategy.enc(origin);
-        return ResponseDTO.success(ResponseStatus.SUCCESS_CODE,enc);
+        return ResponseUtil.newInstance(enc);
+    }
+
+    @Override
+    public ResponseDTO<String> gmSm2Sign(String origin) {
+
+        String sign = sm2SignStrategy.sign(origin);
+
+        return ResponseUtil.newInstance(sign);
+    }
+
+    @Override
+    public ResponseDTO<String> gmSm3Digest(String origin) {
+
+        String summary = sm3SignStrategy.summary(origin);
+
+        return ResponseUtil.newInstance(summary);
     }
     }
 }
 }

+ 25 - 0
dcuc-duceap-service/src/test/com/dragoninfo/dcuc/duceap/facade/IGmSignFacadeTest.java

@@ -0,0 +1,25 @@
+package com.dragoninfo.dcuc.duceap.facade;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2021/5/12
+ */
+class IGmSignFacadeTest {
+
+
+    @Test
+    void gmSm2Sign() throws Exception {
+
+
+    }
+
+    @Test
+    void gmSm3Digest() {
+    }
+}