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")); } - }