Compartir a través de


enrollFromPublicKey

El ejemplo enrollFromPublicKey inicializa un objeto de solicitud de certificado PKCS #10, lo encapsula en un objeto de solicitud de CMC, envía la solicitud de CMC a una entidad de certificación (CA) empresarial y guarda el certificado devuelto por la ENTIDAD de certificación en un archivo.

Location

Al instalar el Kit de desarrollo de software (SDK) de Microsoft Windows, el ejemplo está instalado, de forma predeterminada, en la carpeta %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollFromPublicKey.

Debate

Ejemplo enrollFromPublicKey:

  1. Procesa los argumentos de la línea de comandos siguientes:
    • Nombre de una plantilla de certificado.
    • Nombre de un archivo en el que se va a guardar el certificado instalado como una matriz de bytes codificada en base64.
    • Un nombre de plantilla de certificado de firma opcional. La plantilla se usa para crear un certificado de firma si no existe ninguno en el almacén de certificados.
  2. Crea un objeto de clave privada IX509PrivateKey y llama al método Create para crear una clave privada asimétrica mediante el proveedor criptográfico predeterminado, el tamaño de clave y los valores keySpec para el equipo actual.
  3. Recupera la parte de clave pública del objeto IX509PrivateKey .
  4. Crea un objeto IX509CertificateRequestPkcs10 e inicializa mediante la plantilla especificada en la línea de comandos y la clave pública.
  5. Crea un objeto IX509CertificateRequestCmc y lo inicializa mediante el objeto de solicitud PKCS #10.
  6. Recupera un certificado de firma existente o, si no se encuentra uno, crea una solicitud de certificado a partir de la plantilla especificada en la línea de comandos e intenta inscribirlo. FindCertByKeyUsage se define en enrollCommon.cpp.
  7. Comprueba la cadena de certificados.
  8. Crea un objeto ISignerCertificate , lo inicializa mediante el certificado de firma, recupera la colección ISignerCertificates del objeto de solicitud CMC y agrega el objeto de certificado de firma a la colección.
  9. Codifica la solicitud de CMC mediante reglas de codificación distinguida (DER).
  10. Crea un objeto ICertConfig y lo usa para recuperar una cadena que contiene la configuración de ca.
  11. Crea un objeto CryptoAPI ICertRequest2 y lo usa más las cadenas que contienen la configuración de ca y la solicitud de certificado para enviar la solicitud a la ENTIDAD de certificación.
  12. Comprueba el estado del proceso de inscripción y guarda el certificado instalado en un archivo. La función EncodeToFileW se define en enrollCommon.cpp.

Solicitud de CMC

Solicitud PKCS #10

Uso de los ejemplos incluidos