如何使用C#获取X509Certificate2对象的签名?

时间:2015-11-13 10:34:01

标签: c# .net x509certificate x509 x509certificate2

我需要获取签名和用于使用C#从证书中创建该签名的算法。

我能这样做吗?如果是,怎么样?

2 个答案:

答案 0 :(得分:3)

我正在开发具有类似功能的应用程序。而且我真的很失望为什么微软没有将属性Signature添加到X509Certificate2类

我知道如何通过bouncycastle

来做到这一点

http://www.bouncycastle.org/csharp/

取出

然后添加代码

using System;
using System.Security.Cryptography.X509Certificates;
using bcrypto = Org.BouncyCastle.X509;

var cert = new X509Certificate2("c:\\temp\\0c50000343119659.cer");
var certParser = new bcrypto.X509CertificateParser();
var privateCertBouncy = certParser.ReadCertificate(cert.GetRawCertData());
var xx = privateCertBouncy.GetSignature();
Array.Reverse(xx);
//Signature
Console.WriteLine(BitConverter.ToString(xx));
//algorithm
Console.WriteLine(privateCertBouncy.SigAlgName);
Console.ReadLine();

答案 1 :(得分:2)

你将不得不求助于Bouncy Castle,

https://github.com/bcgit/bc-csharp/blob/master/crypto/src/x509/X509Certificate.cs#L240

它的X509Certificate类使您可以访问此属性。