Compartir a través de


Funciones de extensión

El formato de certificado X.509 versión 3 identifica varias extensiones que se pueden agregar a un certificado para proporcionar información mejorada sobre el uso de claves, las directivas de certificado y las restricciones, los formularios de nombres alternativos, etc.

CertEnroll.dll implementa las siguientes interfaces para administrar extensiones de certificado:

En cada una de las secciones siguientes se describe una función exportada por Xenroll.dll para administrar extensiones de certificado. En cada sección también se describe cómo usar CertEnroll.dll para reemplazar la función o indica que no existe ninguna asignación entre las dos bibliotecas:

AddCertTypeToRequestWStr

La función AddCertTypeToRequestWStr de Xenroll.dll agrega una plantilla de certificado, por nombre, a una solicitud.

Con CertEnroll.dll, el método preferido para incorporar una plantilla en una solicitud de certificado es usar el método InitializeFromTemplateName en un objeto de solicitud PKCS#10 o [*PKCS ) o el método InitializeFromInnerRequestTemplateName en una solicitud CMC.

Si una plantilla específica no está disponible en el cliente, pero se espera que la entidad de certificación (CA) comprenda, puede usar la interfaz IX509ExtensionTemplateName para agregar una plantilla de versión 1 o puede usar la interfaz IX509ExtensionTemplate para agregar una plantilla de versión 2 a una solicitud de certificado. Por ejemplo, para agregar una plantilla de versión 1, realice las siguientes acciones:

  1. Cree un objeto IX509Extensions .
  2. Cree un objeto IX509ExtensionTemplateName y llame al método InitializeEncode , especificando el nombre de la plantilla.
  3. Agregue la extensión creada a la colección IX509Extensions llamando al método Add .
  4. Cree un objeto IX509AttributeExtensions y llame al método InitializeEncode , especificando la colección IX509Extensions en la entrada.
  5. Recupere un objeto de colección ICryptAttributes llamando a la propiedad CryptAttributes en un objeto de solicitud IX509CertificateRequestPkcs10 o IX509CertificateRequestCmc existente.

AddCertTypeToRequestWStrEx

La función AddCertTypeToRequestWStrEx de Xenroll.dll agrega una plantilla de certificado a una solicitud por nombre, identificador de objeto y versión.

Para obtener información sobre cómo usar CertEnroll.dll para incorporar información de plantilla en una solicitud, vea AddCertTypeToRequestWStr.

AddExtensionsToRequest

La función AddExtensionsToRequest de Xenroll.dll agrega una colección de extensiones a una solicitud.

En CertEnroll.dll, las extensiones se agregan a la colección de atributos de una solicitud CMC o PKCS #10. Para agregar extensiones, realice las siguientes acciones:

  1. Cree un objeto IX509Extensions .
  2. Cree un objeto IX509Extension y llame al método Initialize para crear una extensión a partir de un identificador de objeto y un valor de extensión, o bien use cualquiera de las interfaces enumeradas anteriormente para definir una de las extensiones más comunes.
  3. Agregue cada nueva extensión creada en el paso anterior a la colección IX509Extensions llamando al método Add .

addExtensionToRequestWStr

La función addExtensionToRequestWStr de Xenroll.dll agrega una extensión específica a la solicitud.

En CertEnroll.dll, se debe definir y agregar una extensión específica a una colección de extensiones antes de que la colección de extensiones se agregue a la colección de atributos de una solicitud CMC o PKCS #10. Para obtener más información, consulte la explicación sobre AddExtensionsToRequest anterior.

EnableSMIMECapabilities

La función EnableSMIMECapabilities de Xenroll.dll especifica o recupera un valor booleano que indica si se debe agregar la extensión SMIMECapabilities a la solicitud.

Puede llamar a la propiedad SmimeCapabilities en el objeto IX509CertificateRequestPkcs10 para agregar automáticamente un objeto IX509ExtensionSmimeCapabilities a la solicitud antes de codificar.

IncludeSubjectKeyID

La función IncludeSubjectKeyID de Xenroll.dll especifica o recupera un valor booleano que indica si se debe agregar la extensión SubjectKeyIdentifier a la solicitud.

De forma predeterminada, la extensión SubjectKeyIdentifier se crea cuando se inicializa el objeto de solicitud IX509CertificateRequestPkcs10 . Puede invalidar este comportamiento llamando a la propiedad SuppressOids .

Si tiene un par de claves pública y privada, también puede usar la interfaz IX509ExtensionSubjectKeyIdentifier en CertEnroll.dll para agregar una extensión SubjectKeyIdentifier a una solicitud de certificado mediante la realización de las siguientes acciones:

  1. Cree un objeto IX509Extensions .
  2. Cree un objeto IX509ExtensionSubjectKeyIdentifier y llame al método InitializeEncode , especificando una cadena que contiene el identificador. Normalmente, se trata de un hash SHA-1 de 20 bytes de la clave pública contenida en el certificado de firma de entidad de certificación.
  3. Agregue la extensión creada a la colección IX509Extensions llamando al método Add .
  4. Cree un objeto IX509AttributeExtensions y llame al método InitializeEncode , especificando la colección IX509Extensions en la entrada.
  5. Recupere un objeto de colección ICryptAttributes llamando a la propiedad CryptAttributes en un objeto de solicitud IX509CertificateRequestPkcs10 o IX509CertificateRequestCmc existente.

resetExtensions

La función resetExtensions de Xenroll.dll quita la colección de extensiones de la solicitud.

Para quitar una extensión de una solicitud por número de índice mediante CertEnroll.dll, llame al método Remove en la colección IX509Extensions . Para quitar todos los atributos de una solicitud, llame al método Clear .

Asignar Xenroll.dll a CertEnroll.dll

ICryptAttributes

IX509Extension

IX509Extensions