在C#中验证证书

时间:2014-07-28 22:24:38

标签: c# visual-studio ssl windows-8

由于Windows 8应用程序的限制,我无法使用System.Security库。我需要使用Windows.Security.Cryptography,我需要验证证书(.cer文件)和密钥(.key文件)是否有效。

我已经在阅读该文件并创建了一个新的证书实例:

Windows.Security.Cryptography.Certificates.Certificate objCert = new Windows.Security.Cryptography.Certificates.Certificate(stream);

stream作为IBuffer的.cer文件。

我可以提取.cer文件的某些属性,如expiration或issuer,但是我无法获取它所签名的密钥,并将其与.key文件中包含的密钥进行比较。 / p>

1 个答案:

答案 0 :(得分:0)

你不应该比较这些键。您通常会比较他们的哈希码。就是这样,因为你不会泄露私钥。

证书具有私钥的哈希码。从密钥文件中,您可以计算相同的哈希码。一旦你有两个哈希码,你就可以比较它们。

GetCertHashString()

不要将私钥放在cer文件中,只保留公钥和私钥的哈希值。

另见:How to validate X509 certificate?