Compartir a través de


enrollNestedCMC

El ejemplo enrollNestedCMC lee una solicitud de certificado CMC existente de un archivo, la encapsula en otra solicitud de CMC, firma esta solicitud externa, la envía a una entidad de certificación (CA) y guarda la respuesta del certificado de la CA en un archivo.

Ubicación

Al instalar el Kit de desarrollo de software (SDK) de Microsoft Windows, el ejemplo se instala de forma predeterminada en la carpeta %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\X509 Certificate Enrollment\VC\enrollNestedCMC.

Discusión

El ejemplo enrollNestedCMC:

  1. Procesa los argumentos de la línea de comandos siguientes:
    • Nombre del archivo de entrada.
    • Nombre del archivo de salida.
    • Plantilla de solicitud opcional.
  2. Lee una solicitud cmC existente de un archivo como una matriz de bytes codificada en base63, convierte la matriz de bytes en un BSTR, crea un objeto IX509CertificateRequestCmc y usa el BSTR para inicializar el objeto de solicitud. El objeto inicializado se convierte en la solicitud interna.
  3. Usa el objeto de solicitud interno creado e inicializado en el paso anterior para inicializar otra solicitud de CMC.
  4. 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. Las funciones findCertByTemplate e enrollCertByTemplate se definen en enrollCommon.cpp.
  5. Recupera la colección ISignerCertificates de la solicitud CMC externa, crea un nuevo objeto ISignerCertificate, lo inicializa mediante el certificado de firma recuperado y lo agrega a la colección.
  6. Codifica la solicitud de CMC mediante reglas de codificación distinguidas (DER) y recupera la solicitud como una BSTR.
  7. Crea un objeto ICertConfig y lo usa para recuperar una cadena que contiene la configuración de ca.
  8. Crea un objeto CryptoAPI ICertRequest2 y lo usa más las cadenas que contienen la configuración de la ENTIDAD de certificación y la solicitud de certificado para enviar la solicitud a la CA.
  9. Comprueba el estado del proceso de inscripción y guarda la respuesta del certificado de la ENTIDAD de certificación en un archivo. La función EncodeToFileW se define en enrollCommon.cpp.

de solicitud de CMC

usar el ejemplos incluidos