Partager via


enrollFromPublicKey

L’exemple enrollFromPublicKey initialise un objet de demande de certificat PKCS #10, l’encapsule dans un objet de requête CMC, envoie la demande CMC à une autorité de certification d’entreprise et enregistre le certificat retourné par 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\Security\X509 Certificate Enrollment\VC\enrollmentFromPublicKey.

Discussion

Exemple d’inscriptionFromPublicKey :

  1. Traite les arguments de ligne de commande suivants :
    • Nom d’un modèle de certificat.
    • Nom d’un fichier dans lequel enregistrer le certificat installé en tant que tableau d’octets encodé en base64.
    • Nom de modèle de certificat de signature facultatif. Le modèle est utilisé pour créer un certificat de signature s’il n’en existe aucun dans le magasin de certificats.
  2. Crée un objet de clé privée IX509PrivateKey et appelle la méthode Create pour créer une clé privée asymétrique à l’aide des valeurs par défaut du fournisseur de chiffrement, de la taille de clé et de KeySpec pour l’ordinateur actuel.
  3. Récupère la partie clé publique de l’objet IX509PrivateKey .
  4. Crée un objet IX509CertificateRequestPkcs10 et l’initialise à l’aide du modèle spécifié sur la ligne de commande et la clé publique.
  5. Crée un objet IX509CertificateRequestCmc et l’initialise à l’aide de l’objet de requête PKCS #10.
  6. 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. Le findCertByKeyUsage est défini dans enrollCommon.cpp.
  7. Vérifie la chaîne de certificats.
  8. Crée un objet ISignerCertificate , l’initialise à l’aide du certificat de signature, récupère la collection ISignerCertificates de l’objet de requête CMC et ajoute l’objet de certificat de signature à la collection.
  9. Encode la requête CMC à l’aide de Distinguished Encoding Rules (DER).
  10. Crée un objet ICertConfig et l’utilise pour récupérer une chaîne qui contient la configuration de l’autorité de certification.
  11. Crée un objet ICertRequest2 CryptoAPI et l’utilise ainsi que 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.
  12. Vérifie le status du processus d’inscription et enregistre le certificat installé dans un fichier. La fonction EncodeToFileW est définie dans enrollCommon.cpp.

Demande CMC

Demande PKCS #10

Utilisation des exemples inclus