AsnEncodedData Classe

Definizione

Rappresenta i dati con codifica Abstract Syntax Notation One (ASN.1).

C#
public class AsnEncodedData
Ereditarietà
AsnEncodedData
Derivato

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo della classe AsnEncodedData.

C#
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

class AsnEncodedDataSample
{
    static void Main()
    {		
        //The following example demonstrates the usage the AsnEncodedData classes.
        // Asn encoded data is read from the extensions of an X509 certificate.
        try
        {
            // Open the certificate store.
            X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
            X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
            // Select one or more certificates to display extensions information.
            X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Certificate Select", "Select certificates from the following list to get extension information on that certificate", X509SelectionFlag.MultiSelection);

            // Create a new AsnEncodedDataCollection object.
            AsnEncodedDataCollection asncoll = new AsnEncodedDataCollection();
            for (int i = 0; i < scollection.Count; i++)
            {
                // Display certificate information.
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Certificate name: {0}", scollection[i].GetName());
                Console.ResetColor();
                // Display extensions information.
                foreach (X509Extension extension in scollection[i].Extensions)
                {
                    // Create an AsnEncodedData object using the extensions information.
                    AsnEncodedData asndata = new AsnEncodedData(extension.Oid, extension.RawData);
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Extension type: {0}", extension.Oid.FriendlyName);
                    Console.WriteLine("Oid value: {0}",asndata.Oid.Value);
                    Console.WriteLine("Raw data length: {0} {1}", asndata.RawData.Length, Environment.NewLine);
                    Console.ResetColor();
                    Console.WriteLine(asndata.Format(true));
                    Console.WriteLine(Environment.NewLine);
                    // Add the AsnEncodedData object to the AsnEncodedDataCollection object.
                    asncoll.Add(asndata);
                }
                Console.WriteLine(Environment.NewLine);
            }
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Number of AsnEncodedData items in the collection: {0} {1}", asncoll.Count, Environment.NewLine);
            Console.ResetColor();

            store.Close();
            //Create an enumerator for moving through the collection.
            AsnEncodedDataEnumerator asne = asncoll.GetEnumerator();
            //You must execute a MoveNext() to get to the first item in the collection.
            asne.MoveNext();
            // Write out AsnEncodedData in the collection.
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("First AsnEncodedData in the collection: {0}", asne.Current.Format(true));
            Console.ResetColor();

            asne.MoveNext();
            Console.ForegroundColor = ConsoleColor.DarkBlue;
            Console.WriteLine("Second AsnEncodedData in the collection: {0}", asne.Current.Format(true));
            Console.ResetColor();
            //Return index in the collection to the beginning.
            asne.Reset();
        }
        catch (CryptographicException)
        {
            Console.WriteLine("Information could not be written out for this certificate.");
        }
    }
}

Commenti

Notazione sintassi astratta One (ASN.1), definita in CCITT Recommendation X.208, è un modo per specificare oggetti astratti che verranno trasmessi serialmente. Il set di regole ASN.1 per rappresentare oggetti come stringhe di uno e zero è denominato Regole di codifica distinto (DER) ed è definito in CCITT Raccomandazione X.509, Sezione 8.7. Questi metodi di codifica sono attualmente usati dallo spazio dei nomi di crittografia in .NET Framework.

Si noti che se viene rilevato un tipo di dati sconosciuto durante l'accesso a un'istanza di questa classe, i dati vengono restituiti come stringa esadecimale.

Costruttori

AsnEncodedData()

Inizializza una nuova istanza della classe AsnEncodedData.

AsnEncodedData(AsnEncodedData)

Inizializza una nuova istanza della classe AsnEncodedData utilizzando un'istanza della classe AsnEncodedData.

AsnEncodedData(Byte[])

Inizializza una nuova istanza della classe AsnEncodedData utilizzando una matrice di byte.

AsnEncodedData(Oid, Byte[])

Inizializza una nuova istanza della classe AsnEncodedData utilizzando un oggetto Oid e una matrice di byte.

AsnEncodedData(Oid, ReadOnlySpan<Byte>)

Inizializza una nuova istanza della classe AsnEncodedData da un identificatore di oggetto e dai dati codificati esistenti.

AsnEncodedData(ReadOnlySpan<Byte>)

Inizializza una nuova istanza della classe AsnEncodedData dai dati codificati esistenti.

AsnEncodedData(String, Byte[])

Inizializza una nuova istanza della classe AsnEncodedData utilizzando una matrice di byte.

AsnEncodedData(String, ReadOnlySpan<Byte>)

Inizializza una nuova istanza della classe AsnEncodedData da un identificatore di oggetto e dai dati codificati esistenti.

Proprietà

Oid

Ottiene o imposta il valore Oid per un oggetto AsnEncodedData.

RawData

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

Metodi

CopyFrom(AsnEncodedData)

Copia le informazioni da un oggetto AsnEncodedData.

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.

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