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 du 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.
    • Nom du fichier de sortie.
    • Modèle de requête facultatif.
  2. Lit une requête CMC existante à partir d’un fichier sous la forme d’un tableau d’octets codé en base63, convertit le tableau d’octets en un 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 nouvel 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 règles d’encodage unique (DER) et récupère la requête en tant que BSTR.
  7. Crée un objet ICertConfig et l’utilise pour récupérer une chaîne qui contient la configuration de l’autorité de certification.
  8. Crée un objet cryptoAPI ICertRequest2 et l’utilise plus 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 l’état 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 enrollCommon.cpp.

demande CMC

à l’aide des exemples inclus