Share via


Fonctions d’extension

Le format de certificat X.509 version 3 identifie plusieurs extensions qui peuvent être ajoutées à un certificat pour fournir des informations améliorées sur l’utilisation des clés, les stratégies et les contraintes de certificat, les formulaires de nom alternatifs, etc.

CertEnroll.dll implémente les interfaces suivantes pour gérer les extensions de certificat :

Chacune des sections suivantes traite d’une fonction exportée par Xenroll.dll pour gérer les extensions de certificat. Chaque section explique également comment utiliser CertEnroll.dll pour remplacer la fonction ou indique qu’il n’existe aucun mappage entre les deux bibliothèques :

AddCertTypeToRequestWStr

La fonction AddCertTypeToRequestWStr dans Xenroll.dll ajoute un modèle de certificat, par nom, à une requête.

À l’aide de CertEnroll.dll, la méthode recommandée pour incorporer un modèle dans une demande de certificat consiste à utiliser la méthode InitializeFromTemplateName sur un objet de requête PKCS#10 ou [*PKCS ) ou la méthode InitializeFromInnerRequestTemplateName sur une requête CMC.

Si un modèle spécifique n’est pas disponible sur le client, mais qu’il doit être compris par l’autorité de certification , vous pouvez utiliser l’interface IX509ExtensionTemplateName pour ajouter un modèle version 1 ou vous pouvez utiliser l’interface IX509ExtensionTemplate pour ajouter un modèle version 2 à une demande de certificat. Par exemple, pour ajouter un modèle version 1, effectuez les actions suivantes :

  1. Créez un objet IX509Extensions .
  2. Créez un objet IX509ExtensionTemplateName et appelez la méthode InitializeEncode en spécifiant le nom du modèle.
  3. Ajoutez l’extension créée à la collection IX509Extensions en appelant la méthode Add .
  4. Créez un objet IX509AttributeExtensions et appelez la méthode InitializeEncode , en spécifiant la collection IX509Extensions en entrée.
  5. Récupérez un objet de collection ICryptAttributes en appelant la propriété CryptAttributes sur un objet de requête IX509CertificateRequestPkcs10 ou IX509CertificateRequestCmc existant.

AddCertTypeToRequestWStrEx

La fonction AddCertTypeToRequestWStrEx dans Xenroll.dll ajoute un modèle de certificat à une requête par nom, identificateur d’objet et version.

Pour plus d’informations sur l’utilisation de CertEnroll.dll pour incorporer des informations de modèle dans une demande, consultez AddCertTypeToRequestWStr.

AddExtensionsToRequest

La fonction AddExtensionsToRequest dans Xenroll.dll ajoute une collection d’extensions à une requête.

Dans CertEnroll.dll, des extensions sont ajoutées à la collection d’attributs d’une requête CMC ou PKCS #10. Pour ajouter des extensions, effectuez les actions suivantes :

  1. Créez un objet IX509Extensions .
  2. Créez un objet IX509Extension et appelez la méthode Initialize pour créer une extension à partir d’un identificateur d’objet et d’une valeur d’extension ou utilisez l’une des interfaces répertoriées précédemment pour définir l’une des extensions les plus courantes.
  3. Ajoutez chaque nouvelle extension créée à l’étape précédente à la collection IX509Extensions en appelant la méthode Add .

addExtensionToRequestWStr

La fonction addExtensionToRequestWStr dans Xenroll.dll ajoute une extension spécifique à la requête.

Dans CertEnroll.dll, une extension spécifique doit être définie et ajoutée à une collection d’extensions avant que la collection d’extensions soit ajoutée à la collection d’attributs d’une demande CMC ou PKCS #10. Pour plus d’informations, consultez la discussion AddExtensionsToRequest ci-dessus.

EnableSMIMECapabilities

La fonction EnableSMIMECapabilities dans Xenroll.dll spécifie ou récupère une valeur booléenne qui indique s’il faut ajouter l’extension SMIMECapabilities à la requête.

Vous pouvez appeler la propriété SmimeCapabilities sur l’objet IX509CertificateRequestPkcs10 pour ajouter automatiquement un objet IX509ExtensionSmimeCapabilities à la requête avant l’encodage.

IncludeSubjectKeyID

La fonction IncludeSubjectKeyID dans Xenroll.dll spécifie ou récupère une valeur booléenne qui indique s’il faut ajouter l’extension SubjectKeyIdentifier à la requête.

Par défaut, l’extension SubjectKeyIdentifier est créée lorsque l’objet de requête IX509CertificateRequestPkcs10 est initialisé. Vous pouvez remplacer ce comportement en appelant la propriété SuppressOids .

Si vous avez une paire de clés publique/privée, vous pouvez également utiliser l’interface IX509ExtensionSubjectKeyIdentifier dans CertEnroll.dll pour ajouter une extension SubjectKeyIdentifier à une demande de certificat en effectuant les actions suivantes :

  1. Créez un objet IX509Extensions .
  2. Créez un objet IX509ExtensionSubjectKeyIdentifier et appelez la méthode InitializeEncode , en spécifiant une chaîne qui contient l’identificateur. En règle générale, il s’agit d’un hachage SHA-1 de 20 octets de la clé publique contenue dans le certificat de signature de l’autorité de certification.
  3. Ajoutez l’extension créée à la collection IX509Extensions en appelant la méthode Add .
  4. Créez un objet IX509AttributeExtensions et appelez la méthode InitializeEncode , en spécifiant la collection IX509Extensions en entrée.
  5. Récupérez un objet de collection ICryptAttributes en appelant la propriété CryptAttributes sur un objet de requête IX509CertificateRequestPkcs10 ou IX509CertificateRequestCmc existant.

resetExtensions

La fonction resetExtensions dans Xenroll.dll supprime la collection d’extensions de la requête.

Pour supprimer une extension d’une requête par numéro d’index à l’aide de CertEnroll.dll, appelez la méthode Remove sur la collection IX509Extensions . Pour supprimer tous les attributs d’une requête, appelez la méthode Clear .

Mappage Xenroll.dll à CertEnroll.dll

ICryptAttributes

IX509Extension

IX509Extensions