Я пытаюсь разобрать пользовательское расширение сертификата X509. (Я создал самоподписанный сертификат с пользовательскими расширениями типа «политика сертификатов»). Мне нужно проанализировать эту «политику сертификатов» и ее значения. Программно я могу получить имя пользовательского расширения, которое является «политикой сертификатов», но я не могу получить его значения. Код, который я использую, выглядит следующим образом:
public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
var cert = (X509Certificate2)certificate;
foreach (X509Extension ext in cert.Extensions)
{
// AsnEncodedData x = new AsnEncodedData(ext.Oid, ext.RawData);
MessageBox.Show("Name: " + ext.Oid.FriendlyName + "\nValue: " + ext.Oid.Value);
}
return true;
}
Этот код отображает только «Политику сертификатов», но мне нужны элементы синтаксического анализа политики, показанные ниже:
Значения в элементах политики сертификатов:
[1]Certificate Policy:
Policy Identifier=1.2.3.4
[2]Certificate Policy:
Policy Identifier=1.5.6.7.8
[3]Certificate Policy:
Policy Identifier=1.3.5.8
[3,1]Policy Qualifier Info:
Policy Qualifier Id=CPS
Qualifier:
Tarzano
[3,2]Policy Qualifier Info:
Policy Qualifier Id=User Notice
Qualifier:
Notice Reference:
Organization=Tarzano Ltd
Notice Number=1, 2, 3, 4
Notice Text=Buraya mesaj yazilabilir
Спасибо за помощь !