Share via


X509SubjectKeyIdentifierExtension Konstruktory

Definice

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy .

Přetížení

X509SubjectKeyIdentifierExtension()

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy .

X509SubjectKeyIdentifierExtension(Byte[], Boolean)

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí pole bajtů a hodnotu, která identifikuje, zda rozšíření je kritické.

X509SubjectKeyIdentifierExtension(ReadOnlySpan<Byte>, Boolean)

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí rozsahu bajtů jen pro čtení a hodnoty, která identifikuje, zda je rozšíření kritické.

X509SubjectKeyIdentifierExtension(AsnEncodedData, Boolean)

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí zakódovaných dat a hodnotu, která identifikuje, zda je rozšíření kritické.

X509SubjectKeyIdentifierExtension(PublicKey, Boolean)

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí veřejného klíče a hodnoty označující, zda je rozšíření kritické.

X509SubjectKeyIdentifierExtension(String, Boolean)

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí řetězce a hodnoty, která identifikuje, zda je rozšíření kritické.

X509SubjectKeyIdentifierExtension(PublicKey, X509SubjectKeyIdentifierHashAlgorithm, Boolean)

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí veřejného klíče, identifikátoru hash algoritmu a hodnoty označující, zda je rozšíření kritické.

X509SubjectKeyIdentifierExtension()

Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy .

public:
 X509SubjectKeyIdentifierExtension();
public X509SubjectKeyIdentifierExtension ();
Public Sub New ()

Příklady

Následující příklad kódu ukazuje, jak otevřít osobní úložiště certifikátů uživatele a zobrazit informace o každém certifikátu v úložišti. V tomto příkladu se X509SubjectKeyIdentifierExtension k zobrazení informací používá třída .

#using <System.dll>
#using <system.security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
   try
   {
      X509Store^ store = gcnew X509Store( L"MY",StoreLocation::CurrentUser );
      store->Open( static_cast<OpenFlags>(OpenFlags::ReadOnly | OpenFlags::OpenExistingOnly) );
      X509Certificate2Collection^ collection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
      for ( int i = 0; i < collection->Count; i++ )
      {
         System::Collections::IEnumerator^ myEnum = collection[ i ]->Extensions->GetEnumerator();
         while ( myEnum->MoveNext() )
         {
            X509Extension^ extension = safe_cast<X509Extension^>(myEnum->Current);
            Console::WriteLine( L"{0}({1})", extension->Oid->FriendlyName, extension->Oid->Value );
            if ( extension->Oid->FriendlyName == L"Key Usage" )
            {
               X509KeyUsageExtension^ ext = dynamic_cast<X509KeyUsageExtension^>(extension);
               Console::WriteLine( ext->KeyUsages );
            }
            if ( extension->Oid->FriendlyName == L"Basic Constraints" )
            {
               X509BasicConstraintsExtension^ ext = dynamic_cast<X509BasicConstraintsExtension^>(extension);
               Console::WriteLine( ext->CertificateAuthority );
               Console::WriteLine( ext->HasPathLengthConstraint );
               Console::WriteLine( ext->PathLengthConstraint );
            }
            if ( extension->Oid->FriendlyName == L"Subject Key Identifier" )
            {
               X509SubjectKeyIdentifierExtension^ ext = dynamic_cast<X509SubjectKeyIdentifierExtension^>(extension);
               Console::WriteLine( ext->SubjectKeyIdentifier );
            }
            if ( extension->Oid->FriendlyName == L"Enhanced Key Usage" )
            {
               X509EnhancedKeyUsageExtension^ ext = dynamic_cast<X509EnhancedKeyUsageExtension^>(extension);
               OidCollection^ oids = ext->EnhancedKeyUsages;
               System::Collections::IEnumerator^ myEnum1 = oids->GetEnumerator();
               while ( myEnum1->MoveNext() )
               {
                  Oid^ oid = safe_cast<Oid^>(myEnum1->Current);
                  Console::WriteLine( L"{0}({1})", oid->FriendlyName, oid->Value );
               }
            }
         }

      }
      store->Close();
   }
   catch ( CryptographicException^ ) 
   {
      Console::WriteLine( L"Information could not be written out for this certificate." );
   }

}
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class CertSelect
{
    public static void Main()
    {
        try
        {
            X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
            for (int i = 0; i < collection.Count; i++)
            {
                foreach (X509Extension extension in collection[i].Extensions)
                {
                    Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")");

                    if (extension.Oid.FriendlyName == "Key Usage")
                    {
                        X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
                        Console.WriteLine(ext.KeyUsages);
                    }

                    if (extension.Oid.FriendlyName == "Basic Constraints")
                    {
                        X509BasicConstraintsExtension ext = (X509BasicConstraintsExtension)extension;
                        Console.WriteLine(ext.CertificateAuthority);
                        Console.WriteLine(ext.HasPathLengthConstraint);
                        Console.WriteLine(ext.PathLengthConstraint);
                    }

                    if (extension.Oid.FriendlyName == "Subject Key Identifier")
                    {
                        X509SubjectKeyIdentifierExtension ext = (X509SubjectKeyIdentifierExtension)extension;
                        Console.WriteLine(ext.SubjectKeyIdentifier);
                    }

                    if (extension.Oid.FriendlyName == "Enhanced Key Usage")
                    {
                        X509EnhancedKeyUsageExtension ext = (X509EnhancedKeyUsageExtension)extension;
                        OidCollection oids = ext.EnhancedKeyUsages;
                        foreach (Oid oid in oids)
                        {
                            Console.WriteLine(oid.FriendlyName + "(" + oid.Value + ")");
                        }
                    }
                }
            }
            store.Close();
        }
        catch (CryptographicException)
        {
            Console.WriteLine("Information could not be written out for this certificate.");
        }
    }
}
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates



Module CertSelect

    Sub Main()
        Try
            Dim store As New X509Store("MY", StoreLocation.CurrentUser)
            store.Open(OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly)

            Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
            For i As Integer = 0 To collection.Count - 1
                Dim extension As X509Extension
                For Each extension In collection(i).Extensions
                    Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")")


                    If extension.Oid.FriendlyName = "Key Usage" Then
                        Dim ext As X509KeyUsageExtension = CType(extension, X509KeyUsageExtension)
                        Console.WriteLine(ext.KeyUsages)
                    End If

                    If extension.Oid.FriendlyName = "Basic Constraints" Then
                        Dim ext As X509BasicConstraintsExtension = CType(extension, X509BasicConstraintsExtension)
                        Console.WriteLine(ext.CertificateAuthority)
                        Console.WriteLine(ext.HasPathLengthConstraint)
                        Console.WriteLine(ext.PathLengthConstraint)
                    End If

                    If extension.Oid.FriendlyName = "Subject Key Identifier" Then
                        Dim ext As X509SubjectKeyIdentifierExtension = CType(extension, X509SubjectKeyIdentifierExtension)
                        Console.WriteLine(ext.SubjectKeyIdentifier)
                    End If

                    If extension.Oid.FriendlyName = "Enhanced Key Usage" Then
                        Dim ext As X509EnhancedKeyUsageExtension = CType(extension, X509EnhancedKeyUsageExtension)
                        Dim oids As OidCollection = ext.EnhancedKeyUsages
                        Dim oid As Oid
                        For Each oid In oids
                            Console.WriteLine(oid.FriendlyName + "(" + oid.Value + ")")
                        Next oid
                    End If
                Next extension
            Next i
            store.Close()
        Catch
            Console.WriteLine("Information could not be written out for this certificate.")
        End Try

    End Sub
End Module

Platí pro

X509SubjectKeyIdentifierExtension(Byte[], Boolean)

Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí pole bajtů a hodnotu, která identifikuje, zda rozšíření je kritické.

public:
 X509SubjectKeyIdentifierExtension(cli::array <System::Byte> ^ subjectKeyIdentifier, bool critical);
public X509SubjectKeyIdentifierExtension (byte[] subjectKeyIdentifier, bool critical);
new System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension : byte[] * bool -> System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension
Public Sub New (subjectKeyIdentifier As Byte(), critical As Boolean)

Parametry

subjectKeyIdentifier
Byte[]

Bajtové pole, které představuje data, která se mají použít k vytvoření rozšíření.

critical
Boolean

truepokud je rozšíření kritické; v opačném případě . false

Platí pro

X509SubjectKeyIdentifierExtension(ReadOnlySpan<Byte>, Boolean)

Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí rozsahu bajtů jen pro čtení a hodnoty, která identifikuje, zda je rozšíření kritické.

public:
 X509SubjectKeyIdentifierExtension(ReadOnlySpan<System::Byte> subjectKeyIdentifier, bool critical);
public X509SubjectKeyIdentifierExtension (ReadOnlySpan<byte> subjectKeyIdentifier, bool critical);
new System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension : ReadOnlySpan<byte> * bool -> System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension
Public Sub New (subjectKeyIdentifier As ReadOnlySpan(Of Byte), critical As Boolean)

Parametry

subjectKeyIdentifier
ReadOnlySpan<Byte>

Rozsah bajtů jen pro čtení, který představuje data, která se mají použít k vytvoření rozšíření.

critical
Boolean

truepokud je rozšíření kritické; v opačném případě . false

Platí pro

X509SubjectKeyIdentifierExtension(AsnEncodedData, Boolean)

Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí zakódovaných dat a hodnotu, která identifikuje, zda je rozšíření kritické.

public:
 X509SubjectKeyIdentifierExtension(System::Security::Cryptography::AsnEncodedData ^ encodedSubjectKeyIdentifier, bool critical);
public X509SubjectKeyIdentifierExtension (System.Security.Cryptography.AsnEncodedData encodedSubjectKeyIdentifier, bool critical);
new System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension : System.Security.Cryptography.AsnEncodedData * bool -> System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension
Public Sub New (encodedSubjectKeyIdentifier As AsnEncodedData, critical As Boolean)

Parametry

encodedSubjectKeyIdentifier
AsnEncodedData

Objekt AsnEncodedData , který se má použít k vytvoření rozšíření.

critical
Boolean

truepokud je rozšíření kritické; v opačném případě . false

Poznámky

Tento konstruktor použijte, pokud informace k vytvoření rozšíření již jsou v objektu AsnEncodedData .

Platí pro

X509SubjectKeyIdentifierExtension(PublicKey, Boolean)

Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí veřejného klíče a hodnoty označující, zda je rozšíření kritické.

public:
 X509SubjectKeyIdentifierExtension(System::Security::Cryptography::X509Certificates::PublicKey ^ key, bool critical);
public X509SubjectKeyIdentifierExtension (System.Security.Cryptography.X509Certificates.PublicKey key, bool critical);
new System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.PublicKey * bool -> System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension
Public Sub New (key As PublicKey, critical As Boolean)

Parametry

key
PublicKey

Objekt PublicKey pro vytvoření identifikátoru klíče subjektu (SKI).

critical
Boolean

truepokud je rozšíření kritické; v opačném případě . false

Platí pro

X509SubjectKeyIdentifierExtension(String, Boolean)

Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí řetězce a hodnoty, která identifikuje, zda je rozšíření kritické.

public:
 X509SubjectKeyIdentifierExtension(System::String ^ subjectKeyIdentifier, bool critical);
public X509SubjectKeyIdentifierExtension (string subjectKeyIdentifier, bool critical);
new System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension : string * bool -> System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension
Public Sub New (subjectKeyIdentifier As String, critical As Boolean)

Parametry

subjectKeyIdentifier
String

Řetězec kódovaný v šestnáctkovém formátu, který představuje identifikátor klíče subjektu (SKI) certifikátu.

critical
Boolean

truepokud je rozšíření kritické; v opačném případě . false

Poznámky

Identifikátor klíče subjektu (SKI) lze použít k identifikaci certifikátu a často se používá při práci s digitálním podepisováním XML.

Platí pro

X509SubjectKeyIdentifierExtension(PublicKey, X509SubjectKeyIdentifierHashAlgorithm, Boolean)

Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs
Zdroj:
X509SubjectKeyIdentifierExtension.cs

Inicializuje novou instanci X509SubjectKeyIdentifierExtension třídy pomocí veřejného klíče, identifikátoru hash algoritmu a hodnoty označující, zda je rozšíření kritické.

public:
 X509SubjectKeyIdentifierExtension(System::Security::Cryptography::X509Certificates::PublicKey ^ key, System::Security::Cryptography::X509Certificates::X509SubjectKeyIdentifierHashAlgorithm algorithm, bool critical);
public X509SubjectKeyIdentifierExtension (System.Security.Cryptography.X509Certificates.PublicKey key, System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierHashAlgorithm algorithm, bool critical);
new System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.PublicKey * System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierHashAlgorithm * bool -> System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension
Public Sub New (key As PublicKey, algorithm As X509SubjectKeyIdentifierHashAlgorithm, critical As Boolean)

Parametry

key
PublicKey

Objekt PublicKey pro vytvoření identifikátoru klíče subjektu (SKI).

algorithm
X509SubjectKeyIdentifierHashAlgorithm

Jedna z X509SubjectKeyIdentifierHashAlgorithm hodnot, která určuje, který hashovací algoritmus se má použít.

critical
Boolean

truepokud je rozšíření kritické; v opačném případě . false

Platí pro