X509VerificationFlags Перечисление

Определение

Задает условия, при которых должна проводиться проверка сертификатов цепочки X509.

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class X509VerificationFlags
[System.Flags]
public enum X509VerificationFlags
[<System.Flags>]
type X509VerificationFlags = 
Public Enum X509VerificationFlags
Наследование
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.

Применяется к