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 codé 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’existe aucun dans le magasin de certificats.
  2. Crée un IX509PrivateKey objet de clé privée et appelle la méthode Create pour créer une clé privée asymétrique à l’aide du fournisseur de chiffrement, de la taille de clé et de valeurs 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 règles d’encodage unique (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 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.
  12. Vérifie l’état du processus d’inscription et enregistre le certificat installé dans un fichier. La fonction EncodeToFileW est définie dans enrollCommon.cpp.

demande CMC

PKCS #10 Demande

à l’aide des exemples inclus