证书工具

This commit is contained in:
cheney 2022-10-13 10:25:19 +08:00
parent f36b8c2ca3
commit 01f7ac1f31

View File

@ -1,21 +1,22 @@
package com.sunyard.util; package com.sunyard.util;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import com.sunyard.RetWrap;
import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.jce.provider.BouncyCastleProvider;
import sun.misc.BASE64Encoder; import sun.misc.BASE64Encoder;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.security.NoSuchProviderException; import java.security.NoSuchProviderException;
import java.security.Security; import java.security.Security;
import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateException; import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory; import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.util.Map;
public class CertUtil { public class CertUtil {
public static String encodeBase64(byte[] data){ public static String encodeBase64(byte[] data) {
return new BASE64Encoder().encode( data ); return new BASE64Encoder().encode(data);
} }
static { static {
@ -70,6 +71,7 @@ public class CertUtil {
/** /**
* 判断正式是否是国密证书 * 判断正式是否是国密证书
*
* @param cert 证书 base64 字符 * @param cert 证书 base64 字符
* @return true 国密 false 非国密 * @return true 国密 false 非国密
*/ */
@ -81,12 +83,13 @@ public class CertUtil {
/** /**
* 判断 p7 是否是国密证书签的 * 判断 p7 是否是国密证书签的
*
* @param pkcs7 pkcs7 * @param pkcs7 pkcs7
* @return true 国密 false 非国密 * @return true 国密 false 非国密
*/ */
public static boolean isSignedBySM2Cert( String pkcs7 ){ public static boolean isSignedBySM2Cert(String pkcs7) throws IOException, CertificateException, NoSuchProviderException {
return false; RetWrap ret = ASN1Util.takeOutOriginDataFromPKCS7Sign(pkcs7);
return isSM2Cert((String) ret.get("cert"));
} }
} }