From 01f7ac1f3175442cf67329ebc716bc5e51745118 Mon Sep 17 00:00:00 2001 From: cheney Date: Thu, 13 Oct 2022 10:25:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=81=E4=B9=A6=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/sunyard/util/CertUtil.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/sunyard/util/CertUtil.java b/src/main/java/com/sunyard/util/CertUtil.java index 2a40df6..73ac14a 100644 --- a/src/main/java/com/sunyard/util/CertUtil.java +++ b/src/main/java/com/sunyard/util/CertUtil.java @@ -1,21 +1,22 @@ package com.sunyard.util; import cn.hutool.core.codec.Base64; +import com.sunyard.RetWrap; import org.bouncycastle.jce.provider.BouncyCastleProvider; import sun.misc.BASE64Encoder; import java.io.ByteArrayInputStream; +import java.io.IOException; import java.security.NoSuchProviderException; import java.security.Security; import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; -import java.util.Map; public class CertUtil { - public static String encodeBase64(byte[] data){ - return new BASE64Encoder().encode( data ); + public static String encodeBase64(byte[] data) { + return new BASE64Encoder().encode(data); } static { @@ -70,6 +71,7 @@ public class CertUtil { /** * 判断正式是否是国密证书 + * * @param cert 证书 base64 字符 * @return true 国密, false 非国密 */ @@ -81,12 +83,13 @@ public class CertUtil { /** * 判断 p7 是否是国密证书签的 + * * @param pkcs7 pkcs7 * @return true 国密, false 非国密 */ - public static boolean isSignedBySM2Cert( String pkcs7 ){ - return false; + public static boolean isSignedBySM2Cert(String pkcs7) throws IOException, CertificateException, NoSuchProviderException { + RetWrap ret = ASN1Util.takeOutOriginDataFromPKCS7Sign(pkcs7); + return isSM2Cert((String) ret.get("cert")); } - }