是否有可能从byte []生成java.security.cert.X509Certificate?从byte []生成X509Certificate?
40
A
回答
58
当然。
证书对象可以由CertificateFactory的实例创建 - 特别是配置为创建X509证书的实例。这可以像这样创建:
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
然后,你需要通过它包含证书的字节的InputStream。你的答案
InputStream in = new ByteArrayInputStream(bytes);
X509Certificate cert = (X509Certificate)certFactory.generateCertificate(in);
-1
InputStream stream = null;
byte[] bencoded = javax.xml.bind.DatatypeConverter.parseBase64Binary(x509CertificateStr);
try {
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
cert = (X509Certificate) certFactory.generateCertificate(stream);
} catch (java.security.cert.CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+0
这个问题没有提到base-64,并且'stream'的初始化丢失了。这段代码会抛出一个'NullPointerException'。 – EJP 2016-03-23 11:51:05
相关问题
- 1. 使用bouncycastle生成X509Certificate X509v3CertificateBuilder
- 2. 如何从证书库中获取X509Certificate并生成XML签名数据?
- 3. 无法使用Php WS02生成X509Data和X509Certificate标签WS02
- 4. X509Certificate和XmlDsig
- 5. Bouncycastle:X509CertificateHolder到X509Certificate?
- 6. 重复的X509Certificate
- 7. 获取的byte []从列表<Byte>
- 8. 从X509Certificate对象导出私钥
- 9. 从SOAP安全头获取X509Certificate
- 10. 无法从X50Principal获取UniqueIdentifier X509Certificate
- 11. 如何从任意HTTPS URL获取X509Certificate?
- 12. 在PreviewFrame上成功[byte] []
- 13. 如何从byte []创建FileStreame?
- 14. 生成从WSDL
- 15. Android API无法获得X509Certificate
- 16. 如何在HttpWebRequest中包含X509Certificate?
- 17. X509Certificate和.NET Compact Framework 3.5
- 18. 从maskedTextBox获取byte [](或char [])
- 19. 从bmp创建一个byte []#
- 20. 从`const char *'转换为`byte'
- 21. 从Byte Aarray获取图片
- 22. 从floatbuffer转换为byte []
- 23. 从CSR生成PFX
- 24. 从NSMutableDictionary生成JSON
- 25. 从生成文件
- 26. 生成C++从MATLAB
- 27. 生成从移动
- 28. 从vba生成uml
- 29. 从xml生成'relaxed'xsd
- 30. 从html生成xml
感谢:这可以通过包装你的字节数组在ByteArrayInputStream来实现。但是我在最后一行得到了“(java.security.cert.CertificateException)java.security.cert.CertificateException:无法解析证书:java.io.IOException:空输入”。 InputStream不是空的,但它抛出异常 – 0bj3ct 2015-06-12 07:22:17
同样的事情发生在我身上,因为我没有仔细考虑我在做什么。就我而言,这是因为我试图用keystore中的字节而不是密钥库中的证书来完成上述操作。从密钥库中提取证书,获取编码字节,然后处理这些是上面这个答案为我工作的原因。 – 2015-11-13 22:12:14
在我的情况下,问题是byte []是基于64编码...错误消息是有点误导性的“空输入”。也许它可以帮助某人... – riskop 2016-06-09 15:17:39