Partager via


IX509CertificateRequestPkcs10 ::InitializeFromPrivateKey, méthode (certenroll.h)

La méthode InitializeFromPrivateKey initialise la demande de certificat à l’aide d’un objet IX509PrivateKey et, éventuellement, d’un modèle. Cette méthode est activée sur le web.

Syntaxe

HRESULT InitializeFromPrivateKey(
  [in]           X509CertificateEnrollmentContext Context,
  [in]           IX509PrivateKey                  *pPrivateKey,
  [in, optional] BSTR                             strTemplateName
);

Paramètres

[in] Context

Valeur d’énumération X509CertificateEnrollmentContext qui spécifie si le certificat demandé est destiné à un utilisateur final, un ordinateur ou un administrateur agissant pour le compte de l’ordinateur. Il peut s’agir de l’une des valeurs suivantes. Toutefois, si la propriété MachineContext de la clé privée est définie, vous devez spécifier la valeur d’énumération ContextMachine .

Valeur Signification
ContextUser
Le certificat est demandé pour un utilisateur final.
ContextMachine
Le certificat est demandé pour un ordinateur.
ContextAdministratorForceMachine
Le certificat est demandé par un administrateur agissant pour le compte d’un ordinateur.

[in] pPrivateKey

Pointeur vers une interface IX509PrivateKey qui représente la clé privée.

[in, optional] strTemplateName

Variable BSTR qui contient le nom commun (CN) du modèle tel qu’il apparaît dans Active Directory ou l’identificateur d’objet décimal pointillé. Il s'agit d'un paramètre facultatif.

Valeur retournée

Si la fonction réussit, la fonction retourne S_OK.

Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles sont notamment celles figurant dans le tableau suivant. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Code de retour Description
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
L’objet de demande de certificat a déjà été initialisé.

Remarques

Si vous spécifiez un modèle, la méthode InitializeFromPrivateKey effectue les actions suivantes :

  • Ajoute les extensions spécifiées par le modèle à une collection IX509Extensions .
  • Crée une collection IObjectIds et la remplit avec les identificateurs d’objet XCN_OID_KEY_USAGE et XCN_OID_BASIC_CONSTRAINTS2 par défaut. Si le modèle indique que ces OID ne sont pas critiques, ils sont supprimés de la collection. Les OID marqués comme critiques par le modèle sont ajoutés.
  • Définit la propriété SmimeCapabilities si le modèle prend en charge des algorithmes symétriques.
  • Définit la propriété AlternateSignatureAlgorithm si le modèle nécessite un algorithme de signature discrète OID.
  • Crée un objet IX509SignatureInformation .
  • Crée un algorithme de hachage OID si l’algorithme est spécifié dans le modèle et le définit sur l’objet IX509SignatureInformation .
  • Récupère un algorithme de chiffrement asymétrique OID, s’il existe, à partir du modèle et le définit sur l’objet IX509SignatureInformation .
  • Remplit la plupart des propriétés IX509PrivateKey à partir des paramètres du modèle.

Que vous spécifiiez un modèle ou non, si la propriété CSPInformations n’est pas spécifiée, la méthode crée une collection ICspInformations à partir des fournisseurs installés sur l’ordinateur.

Aucune clé privée n’est créée à ce stade. Si l’objet IX509PrivateKey passé à la méthode ne représente pas une clé existante, une clé est créée lorsque la méthode Encode est appelée. La clé est créée à l’aide du fournisseur par défaut si aucun modèle n’a été spécifié et si la propriété ProviderName sur le IX509PrivateKey n’est pas définie. Lorsqu’une clé privée existe, elle est définie sur la propriété PrivateKey .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête certenroll.h
DLL CertEnroll.dll

Voir aussi

IX509CertificateRequestPkcs10