X509SubjectKeyIdentifierExtension Classe

Definizione

Definisce una stringa che indica l'identificatore della chiave del soggetto (SKI, Subject Key Identifier) di un certificato. La classe non può essere ereditata.

C#
public sealed class X509SubjectKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.X509Extension
Ereditarietà
X509SubjectKeyIdentifierExtension

Esempio

Nell'esempio di codice seguente viene illustrato come aprire l'archivio certificati personale di un utente e visualizzare informazioni su ogni certificato nell'archivio. In questo esempio viene utilizzata la X509SubjectKeyIdentifierExtension classe per visualizzare le informazioni.

C#
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.");
        }
    }
}

Commenti

Esistono diversi modi per identificare un certificato: dall'hash del certificato, dall'emittente e dal numero di serie e dall'identificatore della chiave del soggetto (SKI). Ski fornisce un'identificazione univoca per l'oggetto del certificato e viene spesso usata quando si lavora con la firma digitale XML.

Costruttori

X509SubjectKeyIdentifierExtension()

Inizializza una nuova istanza della classe X509SubjectKeyIdentifierExtension.

X509SubjectKeyIdentifierExtension(AsnEncodedData, Boolean)

Inizializza una nuova istanza della classe X509SubjectKeyIdentifierExtension utilizzando i dati codificati e un valore che indica se l'estensione è critica.

X509SubjectKeyIdentifierExtension(Byte[], Boolean)

Inizializza una nuova istanza della classe X509SubjectKeyIdentifierExtension utilizzando una matrice di byte e un valore che indica se l'estensione è critica.

X509SubjectKeyIdentifierExtension(PublicKey, Boolean)

Inizializza una nuova istanza della classe X509SubjectKeyIdentifierExtension utilizzando una chiave pubblica e un valore che indica se l'estensione è critica.

X509SubjectKeyIdentifierExtension(PublicKey, X509SubjectKeyIdentifierHashAlgorithm, Boolean)

Inizializza una nuova istanza della classe X509SubjectKeyIdentifierExtension utilizzando una chiave pubblica, un identificatore di algoritmo hash e un valore che indica se l'estensione è critica.

X509SubjectKeyIdentifierExtension(ReadOnlySpan<Byte>, Boolean)

Inizializza una nuova istanza della classe X509SubjectKeyIdentifierExtension usando un intervallo di byte di sola lettura e un valore che indica se l'estensione è critica.

X509SubjectKeyIdentifierExtension(String, Boolean)

Inizializza una nuova istanza della classe X509SubjectKeyIdentifierExtension utilizzando una stringa e un valore che indica se l'estensione è critica.

Proprietà

Critical

Ottiene un valore Boolean che indica se l'estensione è critica.

(Ereditato da X509Extension)
Oid

Ottiene o imposta il valore Oid per un oggetto AsnEncodedData.

(Ereditato da AsnEncodedData)
RawData

Ottiene o imposta i dati con codifica ASN.1 rappresentati in una matrice di byte.

(Ereditato da AsnEncodedData)
SubjectKeyIdentifier

Ottiene una stringa che rappresenta l'identificatore SKI di un certificato.

SubjectKeyIdentifierBytes

Ottiene un valore il cui contenuto rappresenta l'identificatore di chiave del soggetto (SKI) per un certificato.

Metodi

CopyFrom(AsnEncodedData)

Crea una nuova istanza della classe X509SubjectKeyIdentifierExtension copiando le informazioni dai dati codificati.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Format(Boolean)

Restituisce una versione formattata dei dati con codifica ASN.1 come stringa.

(Ereditato da AsnEncodedData)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1