Compartir a través de


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 nombre 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, tal como se muestra en la siguiente sintaxis de notación de sintaxis 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 usar la interfaz base de IX509Extension para representar cualquier extensión que pueda representarse mediante una de las interfaces siguientes. El comportamiento de la inscripción no está definido si no se usa la interfaz adecuada.

 
Interfaz Descripción
IX509ExtensionAlternativeNames Define un 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 AuthorityKeyIdent ifier que habilita la identificación de la entidad de certificación de clave pública que corresponde a la entidad de certificación clave privada que firmó un certificado emitido. La ruta de acceso del certificado la usa para crear software en un servidor de Windows para buscar el certificado de la entidad de certificación.
IX509ExtensionBasicConstraints Define un BasicConstraints extensión 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 un CertificatePolicies extensión que identifica las directivas bajo las que se ha emitido el certificado y los fines para los que se puede usar.
IX509ExtensionEnhancedKeyUsage Define una extensión de EnhancedKeyUsage que identifica uno o varios usos de la clave pública contenida en el certificado.
IX509ExtensionKeyUsage Define una extensión de KeyUsage que restringe las operaciones que puede realizar la clave pública contenida en el certificado.
IX509ExtensionMSApplicationPolicies Define una extensión de MSApplicationPolicies que una aplicación puede usar para filtrar los certificados según el uso permitido. Los usos permitidos se identifican mediante identificadores de objeto (OID).
IX509ExtensionSmimeCapabilities Define un 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 mantenidas por el propietario del certificado. El valor de extensión suele ser un hash SHA-1 de la clave.
IX509ExtensionTemplate Define una plantilla extensión que identifica la plantilla de la versión 2 que se va a usar al emitir o renovar un certificado.
IX509ExtensionTemplateName Define un TemplateName extensión 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 la versión 3 X.509 estándar de sintaxis. 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 base de revocación de certificados (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) Restringe la validación de la ruta de acceso mediante la prohibición de la asignación de directivas o la necesidad de 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 de entidad de certificación subordinadas 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 firmante del certificado. El valor de extensión es una secuencia de pares OID-value.
 

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

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

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 Valor
cliente mínimo admitido Windows Vista [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2008 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de certenroll.h

Consulte también

api de inscripción de certificados de

de ICryptAttribute

IDispatch

IX509AttributeExtensions

IX509Extensions