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 entidad de certificación en un archivo.
Location
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.
Debate
El ejemplo enrollNestedCMC:
- Procesa los argumentos de la línea de comandos siguientes:
- Nombre del archivo de entrada.
- Nombre del archivo de salida.
- Plantilla de solicitud opcional.
- 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.
- Usa el objeto de solicitud interno creado e inicializado en el paso anterior para inicializar otra solicitud de CMC.
- 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.
- 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.
- Codifica la solicitud CMC mediante reglas de codificación distinguida (DER) y recupera la solicitud como BSTR.
- Crea un objeto ICertConfig y lo usa para recuperar una cadena que contiene la configuración de ca.
- 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.
- 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.
Temas relacionados