Скажем, у меня есть три сертификата (в формате Base64)
Root
|
--- CA
|
--- Cert (client/signing/whatever)
Как я могу проверить сертификаты и путь/цепочку сертификатов на С#? (Все эти три сертификата не могут быть в моем магазине cert компьютера)
Изменить. У 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), будет исключение. Это именно то, что я хочу.