我正在尝试学习如何使用充气城堡解码 CSR,因为我打算用它来学习其他加密知识。
我也没有找到任何关于 c# 的文档,只是 java。
这是我的通话方式DecodeCSR(string str)
:
static void Main(string[] args)
{
string csr = "-----BEGIN NEW CERTIFICATE REQUEST-----...";
DecodeCSR(csr);
Console.ReadLine();
}
这是我遇到 IO 异常的方法(包含在下面),我的主要问题是我不知道该给出什么Pkcs10CertificationRequest
.
private static void DecodeCSR(string csr)
{
try
{
byte[] csrEncode = Encoding.UTF8.GetBytes(csr);
Pkcs10CertificationRequest csrDecoder = new Pkcs10CertificationRequest(csrEncode);
byte[] csrDecode = csrDecoder.GetEncoded();
}
catch (IOException e)
{
Console.WriteLine(e);
}
}
错误信息:
System.IO.IOException: unknown tag 13 encountered
at Org.BouncyCastle.Asn1.Asn1InputStream.BuildObject(Int32 tag, Int32 tagNo, Int32 length)
at Org.BouncyCastle.Asn1.Asn1InputStream.ReadObject()
at Org.BouncyCastle.Asn1.Asn1Object.FromByteArray(Byte[] data)
at Org.BouncyCastle.Pkcs.Pkcs10CertificationRequest..ctor(Byte[] encoded)
卢克·伍德沃德的回答非常正确。我仅补充一点,该功能是由 Org.BouncyCastle.OpenSsl.PemReader 直接实现的:
Pkcs10CertificationRequest decodedCsr = (Pkcs10CertificationRequest)new PemReader(new StringReader(csr)).ReadObject();
除了简洁之外,这对于包含更好的语法检查以及支持标头和加密等内容(在这个特定示例中均未使用)来说是更可取的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)