X509FindType Enumeración

Definición

Especifica el tipo de valor que busca el método Find(X509FindType, Object, Boolean).

public enum class X509FindType
public enum X509FindType
type X509FindType = 
Public Enum X509FindType
Herencia
X509FindType

Campos

Nombre Valor Description
FindByThumbprint 0

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente la huella digital del certificado.

FindBySubjectName 1

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el nombre del firmante del certificado. Se trata de una búsqueda menos específica de la proporcionada por el valor de FindBySubjectDistinguishedName enumeración. Con el FindBySubjectName valor , el Find(X509FindType, Object, Boolean) método realiza una comparación de cadenas que no distingue mayúsculas de minúsculas mediante el valor proporcionado. Por ejemplo, si pasa "MyCert" al Find(X509FindType, Object, Boolean) método , encontrará todos los certificados con el nombre del firmante que contiene esa cadena, independientemente de otros valores de asunto. La búsqueda por nombre distintivo es una búsqueda más precisa.

FindBySubjectDistinguishedName 2

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que representa el nombre distintivo del firmante del certificado. Se trata de una búsqueda más específica que la proporcionada por el valor de FindBySubjectName enumeración. Con el FindBySubjectDistinguishedName valor , el Find(X509FindType, Object, Boolean) método realiza una comparación de cadenas que no distingue mayúsculas de minúsculas para todo el nombre distintivo. La búsqueda por nombre de firmante es una búsqueda menos precisa.

FindByIssuerName 3

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el nombre del emisor del certificado. Se trata de una búsqueda menos específica de la proporcionada por el valor de FindByIssuerDistinguishedName enumeración. Con el FindByIssuerName valor , el Find(X509FindType, Object, Boolean) método realiza una comparación de cadenas que no distingue mayúsculas de minúsculas mediante el valor proporcionado. Por ejemplo, si pasa "MyCA" al Find(X509FindType, Object, Boolean) método , encontrará todos los certificados con el nombre del emisor que contiene esa cadena, independientemente de otros valores del emisor.

FindByIssuerDistinguishedName 4

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el nombre distintivo del emisor del certificado. Se trata de una búsqueda más específica que la proporcionada por el valor de FindByIssuerName enumeración. Con el FindByIssuerDistinguishedName valor , el Find(X509FindType, Object, Boolean) método realiza una comparación de cadenas que no distingue mayúsculas de minúsculas para todo el nombre distintivo. La búsqueda por nombre del emisor es una búsqueda menos precisa.

FindBySerialNumber 5

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el número de serie del certificado tal como se muestra en el cuadro de diálogo certificado, pero sin los espacios, o como devuelve el GetSerialNumberString() método .

FindByTimeValid 6

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser un DateTime valor en la hora local. Puede usar Now para buscar todos los certificados válidos actualmente.

FindByTimeNotYetValid 7

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser un DateTime valor en la hora local. El valor no tiene que estar en el futuro. Por ejemplo, puede usar FindByTimeNotYetValid para buscar certificados que se convirtieron en válidos en el año actual tomando la intersección de los resultados de una Find(X509FindType, Object, Boolean) operación para FindByTimeNotYetValid el último día del año pasado con los resultados de una Find(X509FindType, Object, Boolean) operación para FindByTimeValid de Now.

FindByTimeExpired 8

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser un DateTime valor en la hora local. Por ejemplo, puede encontrar todos los certificados que serán válidos hasta el final del año eliminando los resultados de una Find(X509FindType, Object, Boolean) operación del FindByTimeExpired último día del año a partir de los resultados de una Find(X509FindType, Object, Boolean) operación para Now.

FindByTemplateName 9

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el nombre de plantilla del certificado, como "ClientAuth". Un nombre de plantilla es una extensión X509 versión 3 que especifica los usos del certificado.

FindByApplicationPolicy 10

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el nombre descriptivo de la directiva de aplicación o el identificador de objeto (OID o Oid) del certificado. Por ejemplo, se puede usar "Sistema de cifrado de archivos" o "1.3.6.1.4.1.311.10.3.4". Para una aplicación que se localizará, se debe usar el valor OID, ya que el nombre descriptivo está localizado.

FindByCertificatePolicy 11

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el nombre descriptivo o el identificador de objeto (OID o Oid) de la directiva de certificado. El procedimiento recomendado es usar el OID, como "1.3.6.1.4.1.311.10.3.4". Para una aplicación que se localizará, se debe usar el OID, ya que se localiza el nombre descriptivo.

FindByExtension 12

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que describa la extensión que se va a buscar. El identificador de objeto (OID) se usa normalmente para dirigir el Find(X509FindType, Object, Boolean) método para buscar todos los certificados que tienen una extensión que coincida con ese valor de OID.

FindByKeyUsage 13

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el uso de la clave o un entero que represente una máscara de bits que contenga todos los usos de clave solicitados. Para el valor de cadena, solo se puede especificar un uso de clave a la vez, pero el Find(X509FindType, Object, Boolean) método se puede usar en una secuencia en cascada para obtener la intersección de los usos solicitados. Por ejemplo, el findValue parámetro se puede establecer en "KeyEncipherment" o en un entero (0x30 indica "KeyEncipherment" y "DataEncipherment"). También se pueden usar valores de la X509KeyUsageFlags enumeración.

FindBySubjectKeyIdentifier 14

El findValue parámetro del Find(X509FindType, Object, Boolean) método debe ser una cadena que represente el identificador de clave del firmante en hexadecimal, como "F3E815D45E83B8477B9284113C64EF208E897112", tal como se muestra en la interfaz de usuario.

Ejemplos

En el ejemplo siguiente se abre el almacén de certificados personal del usuario actual, solo se buscan certificados válidos, se permite al usuario seleccionar un certificado y, a continuación, se escribe la información del certificado en la consola. La salida depende del certificado que seleccione.

using System;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.IO;
using System.Security.Cryptography.X509Certificates;

class CertSelect
{
    static void Main()
    {
        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);
        X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select","Select a certificate from the following list to get information on that certificate",X509SelectionFlag.MultiSelection);
        Console.WriteLine("Number of certificates: {0}{1}",scollection.Count,Environment.NewLine);

        foreach (X509Certificate2 x509 in scollection)
        {
            try
            {
                byte[] rawdata = x509.RawData;
                Console.WriteLine("Content Type: {0}{1}",X509Certificate2.GetCertContentType(rawdata),Environment.NewLine);
                Console.WriteLine("Friendly Name: {0}{1}",x509.FriendlyName,Environment.NewLine);
                Console.WriteLine("Certificate Verified?: {0}{1}",x509.Verify(),Environment.NewLine);
                Console.WriteLine("Simple Name: {0}{1}",x509.GetNameInfo(X509NameType.SimpleName,true),Environment.NewLine);
                Console.WriteLine("Signature Algorithm: {0}{1}",x509.SignatureAlgorithm.FriendlyName,Environment.NewLine);
                Console.WriteLine("Public Key: {0}{1}",x509.PublicKey.Key.ToXmlString(false),Environment.NewLine);
                Console.WriteLine("Certificate Archived?: {0}{1}",x509.Archived,Environment.NewLine);
                Console.WriteLine("Length of Raw Data: {0}{1}",x509.RawData.Length,Environment.NewLine);
                X509Certificate2UI.DisplayCertificate(x509);
                x509.Reset();
            }
            catch (CryptographicException)
            {
                Console.WriteLine("Information could not be written out for this certificate.");
            }
        }
        store.Close();
    }
}
Imports System.Security.Cryptography
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates

Class CertSelect

    Shared Sub Main()

        Dim store As New X509Store("MY", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly)

        Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Dim fcollection As X509Certificate2Collection = CType(collection.Find(X509FindType.FindByTimeValid, DateTime.Now, False), X509Certificate2Collection)
        Dim scollection As X509Certificate2Collection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select", "Select a certificate from the following list to get information on that certificate", X509SelectionFlag.MultiSelection)
        Console.WriteLine("Number of certificates: {0}{1}", scollection.Count, Environment.NewLine)
         
        For Each x509 As X509Certificate2 In scollection
            Try
                Dim rawdata As Byte() = x509.RawData
                Console.WriteLine("Content Type: {0}{1}", X509Certificate2.GetCertContentType(rawdata), Environment.NewLine)
                Console.WriteLine("Friendly Name: {0}{1}", x509.FriendlyName, Environment.NewLine)
                Console.WriteLine("Certificate Verified?: {0}{1}", x509.Verify(), Environment.NewLine)
                Console.WriteLine("Simple Name: {0}{1}", x509.GetNameInfo(X509NameType.SimpleName, True), Environment.NewLine)
                Console.WriteLine("Signature Algorithm: {0}{1}", x509.SignatureAlgorithm.FriendlyName, Environment.NewLine)
                Console.WriteLine("Public Key: {0}{1}", x509.PublicKey.Key.ToXmlString(False), Environment.NewLine)
                Console.WriteLine("Certificate Archived?: {0}{1}", x509.Archived, Environment.NewLine)
                Console.WriteLine("Length of Raw Data: {0}{1}", x509.RawData.Length, Environment.NewLine)
                X509Certificate2UI.DisplayCertificate(x509)
                x509.Reset()         
             Catch cExcept As CryptographicException
                 Console.WriteLine("Information could not be written out for this certificate.")
             End Try
        Next x509

        store.Close()
    End Sub
End Class

Comentarios

X509FindType identifica el tipo de valor proporcionado en el findValue parámetro para el Find método . Puede usar X509FindType para buscar en una X509Certificate2 colección por nombre de firmante, huella digital, número de serie, intervalo de fechas válido u otro valor.

Puede usar una combinación de tipos de valor para buscar certificados válidos en un intervalo de FindByTime tiempo determinado. La unión de certificados devueltos mediante FindByTimeValid, FindByTimeNotYetValid y FindByTimeExpired durante un tiempo determinado representa todos los certificados de la colección consultada.

Se aplica a