X509Extension Classe

Définition

Représente une extension X509.

C#
public class X509Extension : System.Security.Cryptography.AsnEncodedData
Héritage
X509Extension
Dérivé

Exemples

L’exemple de code suivant illustre l’utilisation de la X509Extension classe .

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

Remarques

Les extensions X509 sont des propriétés dynamiques étendues qui peuvent être ajoutées à un certificat X509 et modifiées. La X509Extension classe peut être utilisée pour créer des extensions associées à un certificat, mais qui ne font pas partie d’un certificat tel qu’émis par une autorité de certification .

Dans sa forme la plus simple, une extension X509 a un identificateur d’objet (OID), une valeur booléenne décrivant si l’extension est considérée comme critique ou non, et des données encodées par ASN. Les extensions personnalisées peuvent être inscrites dans un CryptoConfig fichier.

The.NET Framework inclut des implémentations de plusieurs extensions X509 courantes :

Constructeurs

X509Extension()

Initialise une nouvelle instance de la classe X509Extension.

X509Extension(AsnEncodedData, Boolean)

Initialise une nouvelle instance de la classe X509Extension.

X509Extension(Oid, Byte[], Boolean)

Initialise une nouvelle instance de la classe X509Extension.

X509Extension(Oid, ReadOnlySpan<Byte>, Boolean)

Initialise une nouvelle instance de la classe X509Extension.

X509Extension(String, Byte[], Boolean)

Initialise une nouvelle instance de la classe X509Extension.

X509Extension(String, ReadOnlySpan<Byte>, Boolean)

Initialise une nouvelle instance de la classe X509Extension.

Propriétés

Critical

Obtient une valeur booléenne qui indique si l'extension est critique.

Oid

Obtient ou définit la valeur Oid pour un objet AsnEncodedData.

(Hérité de AsnEncodedData)
RawData

Obtient ou définit les données encodées ASN.1 (Abstract Syntax Notation One) représentées dans un tableau d'octets.

(Hérité de AsnEncodedData)

Méthodes

CopyFrom(AsnEncodedData)

Copie les propriétés d'extension de l'objet AsnEncodedData spécifié.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Format(Boolean)

Retourne une version mise en forme des données encodées ASN.1 (Abstract Syntax Notation One) sous forme de chaîne.

(Hérité de AsnEncodedData)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Produit Versions
.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