Compartir a través de


IX509CertificateRequestPkcs10V2::InitializeFromPublicKeyTemplate (certenroll.h)

El método InitializeFromPublicKeyTemplate inicializa una solicitud de certificado firmado con null mediante un objeto IX509PublicKey y una plantilla.

Sintaxis

HRESULT InitializeFromPublicKeyTemplate(
  [in] X509CertificateEnrollmentContext Context,
  [in] IX509PublicKey                   *pPublicKey,
  [in] IX509EnrollmentPolicyServer      *pPolicyServer,
  [in] IX509CertificateTemplate         *pTemplate
);

Parámetros

[in] Context

Valor de enumeración X509CertificateEnrollmentContext que especifica si el certificado solicitado está pensado para un usuario final, un equipo o un administrador que actúa en nombre del equipo. Puede ser uno de los siguientes valores.

Valor Significado
ContextUser
El certificado se solicita para un usuario final.
ContextMachine
El certificado se solicita para un equipo.
ContextAdministratorForceMachine
Un administrador que actúa en nombre de un equipo solicita el certificado.

[in] pPublicKey

Puntero a una interfaz IX509PublicKey que representa la clave pública.

[in] pPolicyServer

Puntero a un objeto IX509EnrollmentPolicyServer que representa el servidor de directiva de inscripción de certificados (CEP) que contiene la plantilla especificada por el parámetro pTemplate .

[in] pTemplate

Puntero a un objeto IX509CertificateTemplate que representa la plantilla que se va a usar durante la inicialización.

Valor devuelto

Si la función se realiza correctamente, la función devuelve S_OK.

Si se produce un error en la función, devuelve un valor HRESULT que indica el error. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código o valor devuelto Descripción
E_POINTER
Los parámetros pPublicKey, pPolicyServer o pTemplate son NULL.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
El objeto de solicitud de certificado ya se ha inicializado.

Comentarios

El método InitializeFromPublicKeyTemplate realiza las siguientes acciones:

  • Agrega las extensiones especificadas en la plantilla, si las hay, a la colección IX509Extensions .
  • Crea una colección CriticalExtensions y la rellena con el XCN_OID_KEY_USAGE predeterminado y XCN_OID_BASIC_CONSTRAINTS2 identificadores de objeto. Si la plantilla indica que estos OID no son críticos, se quitan de la colección. Los OID marcados como críticos por la plantilla, si los hay, se agregan.
  • Establece la propiedad SmimeCapabilities si la plantilla admite algoritmos simétricos.
  • Establece la propiedad AlternateSignatureAlgorithm si la plantilla requiere un OID de algoritmo de firma discreto.
  • Crea un objeto IX509SignatureInformation .
  • Crea un OID de algoritmo hash si el algoritmo se especifica en la plantilla y lo establece en el objeto IX509SignatureInformation .
  • Crea un OID de algoritmo de cifrado asimétrico si el algoritmo se especifica en la plantilla y lo establece en el objeto IX509SignatureInformation .

Si no se especifica la propiedad CSPInformations , el método crea una colección ICspInformations a partir de los proveedores instalados en el equipo.

El método no crea una clave privada. El uso de este método implica que la solicitud tiene signo NULL. Por lo tanto, el método establece la propiedad NullSigned en el objeto IX509SignatureInformation .

Requisitos

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

Consulte también

IX509CertificateRequestPkcs10V2