Fonctions de clés privées et publiques

CertEnroll.dll implémente les interfaces IX509PrivateKey et IX509PublicKey . Vous pouvez, par exemple, utiliser l’interface IX509PrivateKey pour effectuer les actions suivantes sur une clé privée:

  • Créer, ouvrir, fermer, importer, exporter et supprimer la clé.
  • Spécifiez ou récupérez l' algorithme de clé publique.
  • Spécifiez ou récupérez des informations sur le fournisseur de services de chiffrement (CSP) disponible qui prend en charge l’algorithme de clé publique.
  • Spécifiez ou récupérez le certificat associé à la clé privée.
  • Spécifiez ou récupérez le nom du conteneur de clé.
  • Spécifiez ou récupérez une description de et un nom d’affichage pour la clé.
  • Spécifiez ou récupérez les contraintes d’exportation sur une clé privée.
  • Spécifiez ou récupérez une valeur booléenne qui indique si la clé existe.
  • Spécifiez ou récupérez une valeur qui indique comment la clé est protégée avant son utilisation.
  • Spécifiez ou récupérez une valeur qui indique si la clé peut être utilisée pour la signature, le chiffrement, ou les deux.
  • Spécifiez ou récupérez une valeur qui identifie l’objectif spécifique pour lequel la clé peut être utilisée.
  • Spécifiez ou récupérez la longueur de la clé.
  • Spécifiez ou récupérez une valeur qui indique si la clé est utilisée ou enregistrée dans le contexte d’un ordinateur ou d’un utilisateur.
  • Récupérez une valeur booléenne qui spécifie si la clé a été ouverte.
  • Spécifiez un numéro d’identification personnel pour accéder à une clé privée sur une carte à puce.
  • Spécifiez ou récupérez le nom du fournisseur de services de chiffrement associé à la clé.
  • Spécifiez ou récupérez le descripteur de sécurité pour la clé.

Chacune des sections suivantes identifie une fonction exportée par Xenroll.dll qui peut être utilisée pour gérer une clé de chiffrement. Chaque rubrique explique également comment utiliser CertEnroll.dll pour remplacer la fonction ou indique qu’il n’existe aucun mappage entre les deux bibliothèques :

ContainerNameWStr

La fonction ContainerNameWStr dans Xenroll.dll spécifie ou récupère le nom du conteneur de clé.

Lorsque vous utilisez CertEnroll.dll, vous pouvez effectuer les actions suivantes pour récupérer le nom d’un conteneur de clé :

  1. Appelez la propriété Request sur un objet IX509Enrollment existant.
  2. Appelez la méthode GetInnerRequest sur la requête retournée à l’étape 1 pour récupérer la requête la plus profonde.
  3. Appelez QueryInterface sur l’objet IX509CertificateRequest retourné à l’étape 2 pour effectuer un cast en un objet IX509CertificateRequestPkcs10 .
  4. Appelez la propriété PrivateKey sur la # demande PKCS 10.
  5. Appelez la propriété containerName sur l’objet IX509PrivateKey récupéré à partir de l’étape 4.

GenKeyFlags

La fonction GenKeyFlags définie dans Xenroll.dll spécifie ou récupère les indicateurs utilisés pour générer une clé privée ou une paire de clés publique/privée.

Lorsque vous utilisez CertEnroll.dll, vous pouvez spécifier un certain nombre de propriétés différentes qui détermineront la façon dont une clé privée sera créée. Pour plus d’informations, consultez créer.

GetKeyLen

La fonction GetKeyLen définie dans Xenroll.dll récupère la taille de clé maximale ou minimale d’une clé de chiffrement.

Lorsque vous utilisez CertEnroll.dll, vous pouvez appeler la propriété Length sur un objet IX509PrivateKey ou IX509PublicKey pour récupérer la taille de la clé, en bits.

GetKeyLenEx

La fonction GetKeyLenEx définie dans Xenroll.dll récupère la taille de clé maximale ou minimale ou la longueur d’incrément d’une clé de chiffrement.

Lorsque vous utilisez CertEnroll.dll, vous pouvez appeler la propriété Length sur un objet IX509PrivateKey ou IX509PublicKey pour récupérer la taille de la clé, en bits. Si un algorithme prend en charge des longueurs de clé incrémentielles, vous pouvez appeler la propriété IncrementLength sur l’objet ICspAlgorithm pour récupérer la valeur d’incrémentation. Vous pouvez également appeler les propriétés minLength et MaxLength pour récupérer les tailles de clé minimale et maximale.

GetSupportedKeySpec

La fonction GetSupportedKeySpec définie dans Xenroll.dll récupère une valeur qui indique si un fournisseur de services de chiffrement prend en charge les clés d’échange, les clés de signature ou les deux.

Lorsque vous utilisez CertEnroll.dll, vous pouvez appeler la propriété KeySpec sur les objets IX509PrivateKey ou ICspInformation pour récupérer les opérations prises en charge par la clé.

KeySpec

La fonction KeySpec définie dans Xenroll.dll spécifie ou récupère le type de clé.

Lorsque vous utilisez CertEnroll.dll, vous pouvez appeler la propriété KeySpec sur un objet IX509PrivateKey pour récupérer les opérations prises en charge par la clé.

LimitExchangeKeyToEncipherment

La fonction LimitExchangeKeyToEncipherment définie dans Xenroll.dll spécifie ou récupère une valeur booléenne qui indique si une clé de chiffrement peut être utilisée uniquement pour les données ou le chiffrement de clé.

CertEnroll.dll ne contient pas d’équivalent direct pour cette fonction. Toutefois, vous pouvez obtenir un résultat quasiment équivalent en spécifiant un objet IX509ExtensionKeyUsage et en l’ajoutant à la demande de certificat.

PVKFileNameWStr

La fonction PVKFileNameWStr définie dans Xenroll.dll spécifie ou récupère le nom d’un fichier qui contient des clés exportées.

Quand vous utilisez CertEnroll.dll, vous pouvez appeler la méthode Export sur un objet IX509PrivateKey pour exporter une clé vers un BSTR. Vous pouvez appeler la méthode ExportPublicKey pour exporter la partie clé publique d’une paire de clés asymétriques.

ReuseHardwareKeyIfUnableToGenNew

La fonction ReuseHardwareKeyIfUnableToGenNew définie dans Xenroll.dll spécifie ou récupère une valeur booléenne qui indique si une clé existante est réutilisée lorsqu’une erreur se produit lors de la génération d’une nouvelle clé.

Quand vous utilisez CertEnroll.dll, vous pouvez appeler la méthode InitializeFromCertificate sur un objet IX509CertificateRequestPkcs10 et spécifier une valeur du type d’énumération X509RequestInheritOptions pour réutiliser une clé privée existante.

UseExistingKeySet

La fonction UseExistingKeySet définie dans Xenroll.dll spécifie ou récupère une valeur booléenne qui indique s’il faut utiliser des clés existantes.

Lorsque vous utilisez CertEnroll.dll, vous pouvez appeler la méthode InitializeFromCertificate sur un objet IX509CertificateRequestPkcs10 et spécifier une valeur du type d’énumération X509RequestInheritOptions pour réutiliser les clés privées et publiques existantes.

Mappage de Xenroll.dll à CertEnroll.dll