X509CertificateStructure 加载sm2证书
时间: 2024-05-08 09:16:54 浏览: 20
X509CertificateStructure是BouncyCastle库中表示X.509证书结构的类。如果要加载SM2证书,可以使用以下代码:
```java
import java.io.FileInputStream;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
import org.bouncycastle.cert.jcajce.JcaX509CertificateHolderConverter;
// 加载SM2证书
public static X509Certificate loadSM2Certificate(String path) throws Exception {
FileInputStream fis = new FileInputStream(path);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(fis);
fis.close();
if (isSM2Certificate(cert)) {
return cert;
} else {
throw new Exception("Not a SM2 certificate!");
}
}
// 判断证书是否为SM2证书
public static boolean isSM2Certificate(X509Certificate cert) throws Exception {
X509CertificateHolder certHolder = new JcaX509CertificateHolder(cert);
SubjectPublicKeyInfo pubKeyInfo = certHolder.getSubjectPublicKeyInfo();
return pubKeyInfo.getAlgorithm().getAlgorithm().getId().equals(GMObjectIdentifiers.sm2encrypt_with_sm3.getId());
}
```
其中,loadSM2Certificate方法接收证书路径作为参数,返回一个X509Certificate对象,如果证书不是SM2证书,则抛出异常。isSM2Certificate方法用于判断证书是否为SM2证书,返回一个boolean值。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)