Partager via


IObjectId ::InitializeFromAlgorithmName, méthode (certenroll.h)

La méthode InitializeFromAlgorithmName initialise l’objet à partir d’un nom d’algorithme ou d’un identificateur d’objet. Cette méthode a été fournie principalement pour vous permettre d’initialiser l’objet à partir d’un nom d’algorithme CNG (CNG) d’API de chiffrement. Vous pouvez toutefois spécifier n’importe quel nom d’OID. Cette méthode est activée sur le web.

Syntaxe

HRESULT InitializeFromAlgorithmName(
  [in] ObjectIdGroupId        GroupId,
  [in] ObjectIdPublicKeyFlags KeyFlags,
  [in] AlgorithmFlags         AlgFlags,
  [in] BSTR                   strAlgorithmName
);

Paramètres

[in] GroupId

Valeur d’énumération ObjectIdGroupId qui spécifie le groupe OID à rechercher. Il peut s’agir de l’un des groupes d’algorithmes suivants :

  • XCN_CRYPT_HASH_ALG_OID_GROUP_ID
  • XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • XCN_CRYPT_SIGN_ALG_OID_GROUP_ID
En outre, vous pouvez également spécifier des groupes qui ne contiennent pas d’algorithmes de chiffrement :
  • XCN_CRYPT_RDN_ATTR_OID_GROUP_ID
  • XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID
  • XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID
  • XCN_CRYPT_POLICY_OID_GROUP_ID
  • XCN_CRYPT_TEMPLATE_OID_GROUP_ID

[in] KeyFlags

Valeur d’énumération ObjectIdPublicKeyFlags qui spécifie s’il faut rechercher un algorithme de signature ou de chiffrement. Il peut s’agir de l’une des valeurs suivantes :

  • XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
  • XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
Vous pouvez utiliser l’une ou l’autre valeur pour lever l’ambiguïté parmi les algorithmes tels que RSA qui peuvent être utilisés pour chiffrer et signer des messages. Vous devez également spécifier XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID dans le paramètre GroupId .

[in] AlgFlags

Valeur d’énumération AlgorithmFlags . Il peut s’agir de l’une des valeurs suivantes :

  • AlgorithmFlagsNone
  • AlgorithmFlagsWrap
Si vous spécifiez XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID pour le paramètre GroupId , vous pouvez utiliser l’énumération AlgorithmFlags pour rechercher un OID qui peut être utilisé pour encapsuler une clé. Par exemple, vous pouvez récupérer des informations sur l’algorithme AES128wrap si vous spécifiez une longueur de bits de 128 (voir la section Remarques), définissez le paramètre strAlgorithmName sur AES et spécifiez AlgorithmFlagsWrap.

[in] strAlgorithmName

Variable BSTR qui contient le nom. Vous pouvez spécifier un nom ou un OID au format décimal en pointillés. La méthode vérifie que le format est cohérent avec la norme ASN.1 X.208. Pour plus d’informations sur les noms d’algorithmes CNG, consultez Identificateurs d’algorithme CNG.

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/valeur de retour Description
CERTSRV_E_PROPERTY_EMPTY
Les informations OID sont introuvables.
CRYPT_E_UNKNOWN_ALGO
Le nom de l’algorithme n’est pas reconnu.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
L’objet est déjà initialisé.

Remarques

Vous pouvez utiliser les 16 bits supérieurs du paramètre GroupId pour spécifier la taille de clé pour les algorithmes qui acceptent une longueur de bits variable. Par exemple, pour initialiser un objet IObjectId à partir d’un algorithme AES 192 bits, spécifiez « AES » pour le paramètre strAlgorithmName , déplacez la longueur de 16 vers la gauche et effectuez une combinaison or au niveau du bit sur la longueur de bits décalée et la valeur GroupId .

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

IObjectId