AsnEncodedData Clase

Definición

Representa datos codificados con Abstract Syntax Notation One (ASN.1).

public class AsnEncodedData
Herencia
AsnEncodedData
Derivado

Ejemplos

En el ejemplo de código siguiente se muestra cómo se utiliza la clase AsnEncodedData.

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

Comentarios

Notación de sintaxis abstracta uno (ASN.1), que se define en la recomendación CCITT X.208, es una manera de especificar objetos abstractos que se transmitirán en serie. El conjunto de reglas asn.1 para representar objetos como cadenas de uno y ceros se denomina reglas de codificación distinguida (DER) y se define en la recomendación X.509 de CCITT, sección 8.7. Actualmente, el espacio de nombres de criptografía usa estos métodos de codificación en .NET Framework.

Tenga en cuenta que si se encuentra un tipo de datos desconocido al acceder a una instancia de esta clase, los datos se devuelven como una cadena hexadecimal.

Constructores

AsnEncodedData()

Inicializa una nueva instancia de la clase AsnEncodedData.

AsnEncodedData(AsnEncodedData)

Inicializa una nueva instancia de la clase AsnEncodedData utilizando una instancia de la clase AsnEncodedData.

AsnEncodedData(Byte[])

Inicializa una nueva instancia de la clase AsnEncodedData utilizando una matriz de bytes.

AsnEncodedData(Oid, Byte[])

Inicializa una nueva instancia de la clase AsnEncodedData utilizando un objeto Oid y una matriz de bytes.

AsnEncodedData(Oid, ReadOnlySpan<Byte>)

Inicializa una instancia nueva de la clase AsnEncodedData a partir de un identificador de objeto (OID) y de los datos codificados existentes.

AsnEncodedData(ReadOnlySpan<Byte>)

Inicializa una instancia nueva de la clase AsnEncodedData a partir de datos codificados existentes.

AsnEncodedData(String, Byte[])

Inicializa una nueva instancia de la clase AsnEncodedData utilizando una matriz de bytes.

AsnEncodedData(String, ReadOnlySpan<Byte>)

Inicializa una instancia nueva de la clase AsnEncodedData a partir de un identificador de objeto (OID) y de los datos codificados existentes.

Propiedades

Oid

Obtiene o establece el valor Oid de un objeto AsnEncodedData.

RawData

Obtiene o establece los datos codificados mediante Notación de sintaxis abstracta uno (ASN.1, Abstract Syntax Notation One) que están representados en una matriz de bytes.

Métodos

CopyFrom(AsnEncodedData)

Copia información de un objeto AsnEncodedData.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Format(Boolean)

Devuelve una versión con formato de los datos codificados mediante Notación de sintaxis abstracta uno (ASN.1, Abstract Syntax Notation One) como una cadena.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Producto Versiones
.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
.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