Interfaz IX509Extension (certenroll.h)

La interfaz IX509Extension se puede usar para definir una extensión para una solicitud de certificado. Las extensiones de certificado proporcionan información sobre el uso de claves, las directivas de certificado y las restricciones, los formularios de nombres alternativos, etc. Una extensión consta de un identificador de objeto (OID), un valor booleano que identifica si la extensión es crítica y una matriz de bytes que contiene el valor de extensión, como se muestra en la siguiente sintaxis de notación abstracta uno (ASN.1).


Extension ::= SEQUENCE 
{
   extnId              OBJECT IDENTIFIER,
   critical            BOOLEAN DEFAULT FALSE,
   extnValue           OCTETSTRING
}

La API de inscripción de certificados contiene las siguientes interfaces, derivadas de IX509Extension, que puede usar para crear las distintas extensiones que se usan con más frecuencia en una infraestructura de clave pública (PKI) que se basa en un servidor de certificados de Windows.

Nota No use la interfaz base IX509Extension para representar cualquier extensión que se pueda representar mediante una de las siguientes interfaces. El comportamiento de la inscripción no está definido si no se usa la interfaz adecuada.

 
Interfaz Descripción
IX509ExtensionAlternativeNames Define una extensión AlternativeNames que contiene uno o varios formularios de nombre alternativos para el asunto de la solicitud de certificado.
IX509ExtensionAuthorityKeyIdentifier Define una extensión AuthorityKeyIdentifier que habilita la identificación de la clave pública de la entidad de certificación que corresponde a la clave privada de la entidad de certificación que firmó un certificado emitido. Se usa mediante la ruta de acceso de certificado que compila software en un servidor Windows para buscar el certificado de la entidad de certificación.
IX509ExtensionBasicConstraints Define una extensión BasicConstraints que identifica si la entidad se puede usar como entidad de certificación y, si es así, el número de entidades de certificación subordinadas que pueden existir debajo de ella en la cadena de certificados.
IX509ExtensionCertificatePolicies Define una extensión CertificatePolicies que identifica las directivas en las que se ha emitido el certificado y los propósitos para los que se puede usar.
IX509ExtensionEnhancedKeyUsage Define una extensión EnhancedKeyUsage que identifica uno o varios usos de la clave pública contenida en el certificado.
IX509ExtensionKeyUsage Define una extensión KeyUsage que restringe las operaciones que puede realizar la clave pública contenida en el certificado.
IX509ExtensionMSApplicationPolicies Define una extensión MSApplicationPolicies que una aplicación puede usar para filtrar los certificados en función del uso permitido. Los usos permitidos se identifican mediante identificadores de objeto (OID).
IX509ExtensionSmimeCapabilities Define una extensión SmimeCapabilities que identifica las funcionalidades de descifrado de un destinatario de correo electrónico para que el remitente del correo electrónico pueda elegir el algoritmo de cifrado más seguro compatible con ambas partes.
IX509ExtensionSubjectKeyIdentifier Define una extensión SubjectKeyIdentifier que diferencia entre varias claves públicas que mantiene el propietario del certificado. El valor de extensión suele ser un hash SHA-1 de la clave.
IX509ExtensionTemplate Define una extensión de plantilla que identifica la plantilla de la versión 2 que se va a usar al emitir o renovar un certificado.
IX509ExtensionTemplateName Define una extensión TemplateName que identifica la plantilla de la versión 1 que se va a usar al emitir o renovar un certificado.
 

La mayoría de las extensiones que se pueden crear mediante las interfaces anteriores se definen mediante el estándar de sintaxis X.509 de la versión 3. Para crear las extensiones de la versión 3 para las que Microsoft no proporciona un objeto personalizado, puede usar la interfaz IX509Extension . Estas extensiones se identifican en la tabla siguiente.

Extensión/OID Descripción
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) Identifica cómo acceder a la información y los servicios de la entidad de certificación. El valor de extensión contiene una secuencia de URI.
CrlDistributionPoints(XCN_OID_CRL_DIST_POINTS) Contiene el URI de la lista de revocación de certificados base (CRL).
FreshestCRL(XCN_OID_FRESHEST_CRL) Contiene el URI de la CRL delta. La misma sintaxis ASN.1 se usa para esta extensión y la extensión CrlDistributionPoints .
NameConstraints(XCN_OID_NAME_CONSTRAINTS) Identifica el espacio de nombres en el que se deben ubicar todos los nombres de firmantes de certificados de una jerarquía de certificados. La extensión solo se usa en un certificado de entidad de certificación.
PolicyConstraints(XCN_OID_POLICY_CONSTRAINTS) Restringen la validación de rutas prohibiendo la asignación de directivas o exigiendo que cada certificado de la jerarquía contenga un identificador de directiva aceptable.
PolicyMappings(XCN_OID_POLICY_MAPPINGS) Identifica las directivas de una entidad de certificación subordinada que corresponden a las directivas de la entidad de certificación emisora. El valor de extensión contiene una secuencia de emisión de entidades de certificación y asignaciones de directivas subordinadas de entidad de certificación representadas por identificadores de objeto.
PrivateKeyUsagePeriod(XCN_OID_PRIVATEKEY_USAGE_PERIOD) Especifica un período de validez diferente para la clave privada que para el certificado con el que está asociada la clave.
SubjectDirectoryAttributes(XCN_OID_SUBJECT_DIR_ATTRS) Transmite atributos de identificación, como la nacionalidad sobre el sujeto del certificado. El valor de extensión es una secuencia de pares de valores OID.
 

Por último, puede usar la interfaz IX509Extension para definir extensiones privadas que contienen información única para una comunidad específica.

Las extensiones se agregan a la estructura Attributes de una solicitud PKCS #10 y a la estructura TaggedAttributes de una solicitud CMC. Para agregar extensiones a cualquier formato de solicitud, primero debe agregarlas a una colección IX509Extensions y usar la colección para inicializar un objeto IX509AttributeExtensions . Para obtener más información, vea los temas PKCS #10 Extensions (Extensiones de PKCS #10 ) y CMC Extensions (Extensiones de CMC ).

Herencia

La interfaz IX509Extension hereda de la interfaz IDispatch . IX509Extension también tiene estos tipos de miembros:

Métodos

La interfaz IX509Extension tiene estos métodos.

 
IX509Extension::get_Critical

Especifica y recupera un valor booleano que identifica si la extensión de certificado es crítica. (Obtener)
IX509Extension::get_ObjectId

Recupera el identificador de objeto (OID) de la extensión.
IX509Extension::get_RawData

Recupera una matriz de bytes que contiene el valor de extensión. (IX509Extension.get_RawData)
IX509Extension::Initialize

Inicializa un objeto IX509Extension mediante un identificador de objeto (OID) y una matriz de bytes que contiene la extensión codificada reglas de codificación distinguida (DER).
IX509Extension::p ut_Critical

Especifica y recupera un valor booleano que identifica si la extensión de certificado es crítica. (Put)

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certenroll.h

Consulte también

API de inscripción de certificado

ICryptAttribute

IDispatch

IX509AttributeExtensions

IX509Extensions