[英]Convert der to pem through bouncy castle library
I found many answers towards convert from pem to der . 我发现了许多将pem转换为der的答案。
However, I cannot find ways to convert der to pem . 但是,我找不到将der转换为pem的方法 。
for example, the following codes generates der encoded file pkcs10.cer 例如,以下代码生成der编码文件pkcs10.cer
public static void main(String[] args) throws Exception
{
X509Certificate[] chain = buildChain();
PEMWriter pemWrt = new PEMWriter(new OutputStreamWriter(System.out));
pemWrt.writeObject(chain[0]);
FileWriter fwO = new FileWriter("pkcs10.cer");
fwO.write((chain[0]).toString());
fwO.close();
pemWrt.close();
}
Like, [0] Version: 3 SerialNumber: 1353995641265 IssuerDN: CN=Test Certificate Start Date: Mon Nov 26 21:54:01 PST 2012 Final Date: Mon Nov 26 21:54:51 PST 2012 像[0]版本:3序列号:1353995641265 IssuerDN:CN = Test证书开始日期:2012年11月26日星期一21:54:01最终日期:2012年11月26日星期一21:54:51
However, I don't know how to make pem encoded Certification from der files. 但是,我不知道如何从der文件中进行pem编码的认证。
I'm not a Java developer, and therefore I cannot show you code or point to a class. 我不是Java开发人员,因此无法向您显示代码或指向类。 PEM is just the Base64 encoding of the binary DER, with a standard header and trailer.
PEM只是二进制DER的Base64编码,带有标准的标头和标尾。
Below is a method that will convert various BC objects to PEM string serialized format. 下面是将各种BC对象转换为PEM字符串序列化格式的方法。 Note this code is for the C# version of BC but should translate to the Java version without much effort.
请注意,此代码适用于BC的C#版本,但无需花费太多精力即可转换为Java版本。
// converts bouncy castle objects of type
// X509Certificate, X509Crl, AsymmetricCipherKeyPair, AsymmetricKeyParameter,
// IX509AttributeCertificate, Pkcs10CertificationRequest, Asn1.Cms.ContentInfo
// to PEM format string
public string ToPem(object obj)
{
using (MemoryStream mem = new MemoryStream())
{
StreamWriter writer = new StreamWriter(mem);
Org.BouncyCastle.OpenSsl.PemWriter pem = new Org.BouncyCastle.OpenSsl.PemWriter(writer);
pem.WriteObject(obj);
// force the pem write to flush it's data - kind of abnoxious you have to do that
pem.Writer.Flush();
// create a stream reader to read the data.
StreamReader reader = new StreamReader(mem);
mem.Position = 0;
string pemStr = reader.ReadToEnd();
return pemStr;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.