X509VerificationFlags Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает условия, при которых должна проводиться проверка сертификатов цепочки X509.
Это перечисление поддерживает побитовую комбинацию значений его членов.
public enum class X509VerificationFlags
[System.Flags]
public enum X509VerificationFlags
[<System.Flags>]
type X509VerificationFlags =
Public Enum X509VerificationFlags
- Наследование
- Атрибуты
Поля
AllFlags | 4095 | Включены все флаги, относящиеся к проверке. |
AllowUnknownCertificateAuthority | 16 | Игнорируйте, что цепочка не может быть проверена из-за неизвестного центра сертификации (ЦС) или частичных цепочек. |
IgnoreCertificateAuthorityRevocationUnknown | 1024 | При проверке сертификата не учитывать, что отзыв центра сертификации неизвестен. |
IgnoreCtlNotTimeValid | 2 | При проверке сертификата не учитывать, что список доверия сертификатов (CTL) недействителен, например, из-за истечения срока действия списка доверия сертификатов. |
IgnoreCtlSignerRevocationUnknown | 512 | При проверке сертификата не учитывать, что отзыв подписавшего список доверия сертификатов (CTL) неизвестен. |
IgnoreEndRevocationUnknown | 256 | При проверке сертификата не учитывать, что отзыв конечного сертификата (сертификата пользователя) неизвестен. |
IgnoreInvalidBasicConstraints | 8 | При проверке сертификата не учитывать, что основные ограничения недопустимы. |
IgnoreInvalidName | 64 | При проверке сертификата не учитывать, что сертификат имеет недопустимое имя. |
IgnoreInvalidPolicy | 128 | При проверке сертификата не учитывать, что сертификат имеет недопустимую политику. |
IgnoreNotTimeNested | 4 | При проверке сертификата не учитывать, что сертификат центра сертификации (ЦС) и выданный сертификат имеют сроки действия, которые не являются вложенными. Например, сертификат ЦС может действовать с 1 января по 1 декабря, а выданный сертификат — со 2 января по 2 декабря, что означает, что сроки действия не являются вложенными. |
IgnoreNotTimeValid | 1 | При проверке сертификата не учитывать сертификаты в цепочке, которые недействительны, так как срок их действия истек или не наступил. |
IgnoreRootRevocationUnknown | 2048 | При проверке сертификата не учитывать, что корневой отзыв неизвестен. |
IgnoreWrongUsage | 32 | При проверке сертификата не учитывать, что сертификат был выдан не текущему пользователю. |
NoFlag | 0 | Не включены флаги, относящиеся к проверке. |
Примеры
В следующем примере открывается личное хранилище сертификатов текущего пользователя, пользователь может выбрать сертификат, а затем записывает сведения о сертификате и цепочке сертификатов в консоль. Выходные данные зависят от выбранного сертификата.
//Output chain information of the selected certificate.
X509Chain ^ ch = gcnew X509Chain;
ch->ChainPolicy->RevocationMode = X509RevocationMode::Online;
ch->Build( certificate );
Console::WriteLine( "Chain Information" );
Console::WriteLine( "Chain revocation flag: {0}", ch->ChainPolicy->RevocationFlag );
Console::WriteLine( "Chain revocation mode: {0}", ch->ChainPolicy->RevocationMode );
Console::WriteLine( "Chain verification flag: {0}", ch->ChainPolicy->VerificationFlags );
Console::WriteLine( "Chain verification time: {0}", ch->ChainPolicy->VerificationTime );
Console::WriteLine( "Chain status length: {0}", ch->ChainStatus->Length );
Console::WriteLine( "Chain application policy count: {0}", ch->ChainPolicy->ApplicationPolicy->Count );
Console::WriteLine( "Chain certificate policy count: {0} {1}", ch->ChainPolicy->CertificatePolicy->Count, Environment::NewLine );
//Output chain information of the selected certificate.
X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.Build (certificate);
Console.WriteLine ("Chain Information");
Console.WriteLine ("Chain revocation flag: {0}", ch.ChainPolicy.RevocationFlag);
Console.WriteLine ("Chain revocation mode: {0}", ch.ChainPolicy.RevocationMode);
Console.WriteLine ("Chain verification flag: {0}", ch.ChainPolicy.VerificationFlags);
Console.WriteLine ("Chain verification time: {0}", ch.ChainPolicy.VerificationTime);
Console.WriteLine ("Chain status length: {0}", ch.ChainStatus.Length);
Console.WriteLine ("Chain application policy count: {0}", ch.ChainPolicy.ApplicationPolicy.Count);
Console.WriteLine ("Chain certificate policy count: {0} {1}", ch.ChainPolicy.CertificatePolicy.Count, Environment.NewLine);
'Output chain information of the selected certificate.
Dim ch As New X509Chain()
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online
ch.Build(certificate)
Console.WriteLine("Chain Information")
Console.WriteLine("Chain revocation flag: {0}", ch.ChainPolicy.RevocationFlag)
Console.WriteLine("Chain revocation mode: {0}", ch.ChainPolicy.RevocationMode)
Console.WriteLine("Chain verification flag: {0}", ch.ChainPolicy.VerificationFlags)
Console.WriteLine("Chain verification time: {0}", ch.ChainPolicy.VerificationTime)
Console.WriteLine("Chain status length: {0}", ch.ChainStatus.Length)
Console.WriteLine("Chain application policy count: {0}", ch.ChainPolicy.ApplicationPolicy.Count)
Console.WriteLine("Chain certificate policy count: {0} {1}", ch.ChainPolicy.CertificatePolicy.Count, Environment.NewLine)
Комментарии
Эти флаги указывают условия, при которых должна происходить проверка цепочки. Например, если приложению не требуется, чтобы значения времени сертификатов в цепочке были действительными, можно использовать флаг IgnoreNotTimeValid.