Моя программа содержит 2 корневых сертификата, которые я знаю и которым доверяю. Мне нужно проверить сертификаты центров доверия и «пользовательские» сертификаты, выданные центрами доверия, которые все происходят из этих двух корневых сертификатов.
Я использую класс X509Chain для проверки, но это работает только в том случае, если корневой сертификат находится в хранилище сертификатов Windows.
Я ищу способ проверить сертификаты без импорта этих корневых сертификатов - как-нибудь сообщить классу X509Chain, что я доверяю этим корневым сертификатам, и он должен проверять только сертификаты в цепочке и ничего больше.
Фактический код :
X509Chain chain = new X509Chain();
chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck;
chain.ChainPolicy.ExtraStore.Add(root); // i do trust this
chain.ChainPolicy.ExtraStore.Add(trust);
chain.Build(cert);
Изменить: это приложение .NET 2.0 Winforms.