Compartir a través de


createCNGCustomCMC

El ejemplo createCNGCustomCMC crea un objeto de solicitud CMC a partir de una solicitud PKCS #10 anidada interna. La solicitud interna se crea mediante una clave privada asimétrica. La clave privada se crea mediante el proveedor criptográfico Cryptography API: Next Generation (CNG) y el algoritmo especificado en la línea de comandos. Las opciones personalizadas, como la directiva de exportación y el nivel de protección de claves, también se establecen en la clave privada.

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\Security\X509 Certificate Enrollment\VC\createCNGCustomCMC.

Debate

El ejemplo createCNGCustomCMC:

  1. Procesa los siguientes argumentos de la línea de comandos:
    • Nombre de un proveedor de servicios criptográficos (CSP) de CNG.
    • Nombre del algoritmo usado para generar una clave privada asimétrica.
    • Nombre del algoritmo usado para aplicar un hash a la solicitud de certificado.
    • Archivo de salida en el que se va a guardar la solicitud de certificado.
    • Cadena opcional (AlternateSignature) que, si está presente, especifica que se usará un algoritmo de firma combinado en lugar de un algoritmo de firma combinado. Para obtener más información, consulte la propiedad AlternateSignatureAlgorithm.
  2. Crea un objeto IX509PrivateKey y establece las siguientes propiedades:
  3. Crea una clave privada asimétrica.
  4. Crea un objeto IX509CertificateRequestPkcs10 y lo inicializa mediante la clave privada.
  5. Crea un objeto IX509CertificateRequestCmc y lo inicializa mediante el objeto de solicitud PKCS #10 creado en el paso 4.
  6. Establece la marca de algoritmo de firma alternativa en VARIANT_TRUE o VARIANT_FALSE en función de si se especifica una cadena de firma alternativa en la línea de comandos. Para obtener más información, consulte AlternateSignatureAlgorithm.
  7. Crea un identificador de objeto (OID) de algoritmo hash a partir del nombre del algoritmo especificado en la línea de comandos y establece el OID en el objeto de solicitud CMC.
  8. Firma la solicitud de certificado y la codifica mediante reglas de codificación distinguida (DER).
  9. Recupera una cadena que contiene la solicitud de certificado CMC codificada y la guarda en un archivo. La función EncodeToFileW se define en EnrollCommon.cpp.

Solicitud de CMC

Solicitud PKCS #10

Uso de los ejemplos incluidos

IX509PrivateKey