比方說,我有三個證(以Base64格式)C#如何驗證根CA證書(x509)鏈?
Root
|
--- CA
|
--- Cert (client/signing/whatever)
我如何可以驗證在C#中的證書和證書路徑/鏈? (所有這三個證書可能不在我的電腦證書商店)
編輯:BouncyCastle有驗證功能。但我試圖不使用任何第三方庫。
byte[] b1 = Convert.FromBase64String(x509Str1);
byte[] b2 = Convert.FromBase64String(x509Str2);
X509Certificate cer1 =
new X509CertificateParser().ReadCertificate(b1);
X509Certificate cer2 =
new X509CertificateParser().ReadCertificate(b2);
cer1.Verify(cer2.GetPublicKey());
如果cer1未由cert2(CA或root)簽名,則會有異常。這正是我想要的。
我該如何驗證3一次?我如何鏈接3個證書? – Jacob
我不確定,但嘗試創建臨時存儲[X509Store](http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.aspx)。將所有證書添加到該商店。在此之後,您應該調用最低證書上的驗證。 – MichaelMocko