我正在开发一个用C#编写的应用程序,我基本上需要充当自己的证书颁发机构。数据流如下:
我的问题:
X509Certificate2
类,但MSDN中的示例没有显示我所追求的内容。CREATE CERTIFICATE FROM FILE
和BACKUP CERTIFICATE
?答案 0 :(得分:3)
带有Bouncy Castle的certgen的简洁示例
http://netpl.blogspot.com/2012/12/how-to-create-x509certificate2.html
我还在博客上签名和验证xml文档
http://netpl.blogspot.com/2012/12/interoperable-xml-digital-signatures-c_4247.html
答案 1 :(得分:1)
我认为你会改变你对使用命令行实用程序的想法,但假设你没有,我没有答案因为我没有这样做但是这里有一些提示。
我很有信心这可以通过bouncycastle C#库来完成。该库基本上没有记录。我要做的是首先下载bouncycastle Java库的早期版本,例如版本1.45。下载早期版本的原因是因为它更接近当前的C#库。从1.47版本开始,Java API经历了一些根本性的变化。下载Java库的原因是因为大多数功能和类都是相同的,并且Java API至少包含可以通过Web浏览器阅读的Javadoc。在使用C#库进行编码时,我总是拥有Javadocs,Java源代码和C#源代码。我知道这听起来很可怕,但并不是那么糟糕。 C#源代码(以及Java)非常易读且编写得很好,因此可以取得进展。
用户的证书请求应该是PKCS10证书请求。您应该使用类Org.BouncyCastle.Pkcs.Pkcs10CertificationRequest
。使用Pkcs10CertificationRequest(byte [])
构造函数创建此类的实例。此类的超类Org.BouncyCastle.Asn1.Pkcs.CertificationRequest
有一个方法GetCertificationRequestInfo
,它将返回CertificationRequestInfo
个实例。这可用于提取证书请求的各个部分,然后您可以使用Wiktor的答案来创建X509证书。