gpt4 book ai didi

c# - Bouncy CaSTLe 解码 CSR c#

转载 作者:行者123 更新时间:2023-12-02 00:05:31 25 4
gpt4 key购买 nike

我正在尝试学习如何使用充气城堡解码 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();

除了简洁之外,这对于包含更好的语法检查以及支持 header 和加密等内容(在本特定示例中均未使用)来说是更可取的。

关于c# - Bouncy CaSTLe 解码 CSR c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44440974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com