X509SubjectKeyIdentifierExtension Clase

Definición

Define una cadena que identifica el identificador de clave de sujeto (SKI) de un certificado. Esta clase no puede heredarse.

public ref class X509SubjectKeyIdentifierExtension sealed : System::Security::Cryptography::X509Certificates::X509Extension
public sealed class X509SubjectKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.X509Extension
type X509SubjectKeyIdentifierExtension = class
    inherit X509Extension
Public NotInheritable Class X509SubjectKeyIdentifierExtension
Inherits X509Extension
Herencia
X509SubjectKeyIdentifierExtension

Ejemplos

En el ejemplo de código siguiente se muestra cómo abrir el almacén de certificados personal de un usuario y mostrar información sobre cada certificado del almacén. En este ejemplo se usa la X509SubjectKeyIdentifierExtension clase para mostrar la información.

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

Comentarios

Hay varias maneras de identificar un certificado: por el hash del certificado, por el emisor y el número de serie, y por el identificador de clave de sujeto (SKI). Ski proporciona una identificación única para el firmante del certificado y se usa a menudo al trabajar con firma digital XML.

Constructores

Nombre Description
X509SubjectKeyIdentifierExtension()

Inicializa una nueva instancia de la clase X509SubjectKeyIdentifierExtension.

X509SubjectKeyIdentifierExtension(AsnEncodedData, Boolean)

Inicializa una nueva instancia de la X509SubjectKeyIdentifierExtension clase mediante datos codificados y un valor que identifica si la extensión es crítica.

X509SubjectKeyIdentifierExtension(Byte[], Boolean)

Inicializa una nueva instancia de la X509SubjectKeyIdentifierExtension clase mediante una matriz de bytes y un valor que identifica si la extensión es crítica.

X509SubjectKeyIdentifierExtension(PublicKey, Boolean)

Inicializa una nueva instancia de la X509SubjectKeyIdentifierExtension clase mediante una clave pública y un valor que indica si la extensión es crítica.

X509SubjectKeyIdentifierExtension(PublicKey, X509SubjectKeyIdentifierHashAlgorithm, Boolean)

Inicializa una nueva instancia de la X509SubjectKeyIdentifierExtension clase mediante una clave pública, un identificador de algoritmo hash y un valor que indica si la extensión es crítica.

X509SubjectKeyIdentifierExtension(ReadOnlySpan<Byte>, Boolean)

Inicializa una nueva instancia de la X509SubjectKeyIdentifierExtension clase utilizando un intervalo de bytes de solo lectura y un valor que identifica si la extensión es crítica.

X509SubjectKeyIdentifierExtension(String, Boolean)

Inicializa una nueva instancia de la X509SubjectKeyIdentifierExtension clase mediante una cadena y un valor que identifica si la extensión es crítica.

Propiedades

Nombre Description
Critical

Obtiene un valor booleano que indica si la extensión es crítica.

(Heredado de X509Extension)
Oid

Obtiene o establece el Oid valor de un AsnEncodedData objeto .

(Heredado de AsnEncodedData)
RawData

Obtiene o establece los datos codificados en notación de sintaxis abstracta uno (ASN.1) representados en una matriz de bytes.

(Heredado de AsnEncodedData)
SubjectKeyIdentifier

Obtiene una cadena que representa el identificador de clave de asunto (SKI) de un certificado.

SubjectKeyIdentifierBytes

Obtiene un valor cuyo contenido representa el identificador de clave del firmante (SKI) para un certificado.

Métodos

Nombre Description
CopyFrom(AsnEncodedData)

Crea una nueva instancia de la X509SubjectKeyIdentifierExtension clase copiando información de datos codificados.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
Format(Boolean)

Devuelve una versión con formato de los datos codificados en notación de sintaxis abstracta uno (ASN.1) como una cadena.

(Heredado de AsnEncodedData)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a