Partager via


enrollNestedCMC

L’exemple enrollNestedCMC lit une demande de certificat CMC existante à partir d’un fichier, l’encapsule dans une autre demande CMC, signe cette demande externe, l’envoie à une autorité de certification et enregistre la réponse de certificat de l’autorité de certification dans un fichier.

Emplacement

Lorsque vous installez le Kit de développement logiciel (SDK) Microsoft Windows, l’exemple est installé par défaut dans le dossier %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\X509 Certificate Enrollment\VC\enrollmentNestedCMC.

Discussion

L’exemple enrollNestedCMC :

  1. Traite les arguments de ligne de commande suivants :
    • Nom du fichier d’entrée.
    • Le nom du fichier de sortie.
    • Modèle de demande facultatif.
  2. Lit une requête CMC existante à partir d’un fichier en tant que tableau d’octets encodé en base63, convertit le tableau d’octets en BSTR, crée un objet IX509CertificateRequestCmc et utilise le BSTR pour initialiser l’objet de requête. L’objet initialisé devient la requête interne.
  3. Utilise l’objet de requête interne créé et initialisé à l’étape précédente pour initialiser une autre requête CMC.
  4. Récupère un certificat de signature existant ou, s’il est introuvable, crée une demande de certificat à partir du modèle spécifié sur la ligne de commande et tente de l’inscrire. Les fonctions findCertByTemplate et enrollCertByTemplate sont définies dans enrollCommon.cpp.
  5. Récupère la collection ISignerCertificates à partir de la requête CMC externe, crée un objet ISignerCertificate , l’initialise à l’aide du certificat de signature récupéré et l’ajoute à la collection.
  6. Encode la requête CMC à l’aide de Distinguished Encoding Rules (DER) et récupère la requête en tant que BSTR.
  7. Crée un objet ICertConfig et l’utiliser pour récupérer une chaîne qui contient la configuration de l’autorité de certification.
  8. Crée un objet ICertRequest2 CryptoAPI et l’utilise avec les chaînes qui contiennent la configuration de l’autorité de certification et la demande de certificat pour envoyer la demande à l’autorité de certification.
  9. Vérifie la status du processus d’inscription et enregistre la réponse du certificat de l’autorité de certification dans un fichier. La fonction EncodeToFileW est définie dans enrollmentCommon.cpp.

Demande CMC

Utilisation des exemples inclus