Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonction BCryptKeyDerivation dérive une clé sans nécessiter d’accord secret. Ses fonctionnalités sont similaires à celles de BCryptDeriveKey , mais ne nécessitent pas de valeur BCRYPT_SECRET_HANDLE comme entrée.
Syntaxe
NTSTATUS BCryptKeyDerivation(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] BCryptBufferDesc *pParameterList,
[out] PUCHAR pbDerivedKey,
[in] ULONG cbDerivedKey,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Paramètres
[in] hKey
Gérer la clé d’entrée.
[in, optional] pParameterList
Pointeur vers une structure BCryptBufferDesc qui contient les paramètres KDF. Ce paramètre est facultatif et peut être NULL s’il n’est pas nécessaire. Les paramètres peuvent être spécifiques à une fonction de dérivation de clé (KDF) ou génériques. Le tableau suivant présente les paramètres obligatoires et facultatifs pour des KDF spécifiques implémentés par le fournisseur Microsoft Primitive.
| KDF | Paramètre | Obligatoire |
|---|---|---|
| SP800-108 HMAC en mode compteur | KDF_LABEL | Oui |
| KDF_CONTEXT | oui | |
| KDF_HASH_ALGORITHM | oui | |
| SP800-56A | KDF_ALGORITHMID | oui |
| KDF_PARTYUINFO | oui | |
| KDF_PARTYVINFO | oui | |
| KDF_HASH_ALGORITHM | oui | |
| KDF_SUPPPUBINFO | non | |
| KDF_SUPPPRIVINFO | non | |
| PBKDF2 | KDF_HASH_ALGORITHM | oui |
| KDF_SALT | oui | |
| KDF_ITERATION_COUNT | non | |
| CAPI_KDF | KDF_HASH_ALGORITHM | oui |
Le paramètre générique suivant peut être utilisé :
- KDF_GENERIC_PARAMETER
SP800-108 HMAC en mode compteur :
- KDF_GENERIC_PARAMETER = KDF_LABEL||0x00||KDF_CONTEXT
SP800-56A
- KDF_GENERIC_PARAMETER = KDF_ALGORITHMID || KDF_PARTYUINFO || KDF_PARTYVINFO {|| KDF_SUPPPUBINFO } {|| KDF_SUPPPRIVINFO }
PBKDF2
- KDF_GENERIC_PARAMETER = KDF_SALT
- KDF_ITERATION_COUNT : la valeur par défaut est 10000
CAPI_KDF
- KDF_GENERIC_PARAMETER = Non utilisé
[out] pbDerivedKey
Adresse d’une mémoire tampon qui reçoit la clé. Le paramètre cbDerivedKey contient la taille de cette mémoire tampon.
[in] cbDerivedKey
Taille, en octets, de la mémoire tampon pointée vers le paramètre pbDerivedKey .
[out] pcbResult
Pointeur vers une variable qui reçoit le nombre d’octets qui ont été copiés dans la mémoire tampon pointée par le paramètre pbDerivedKey .
[in] dwFlags
Indicateurs qui modifient le comportement de cette fonction. La valeur suivante peut être utilisée avec le fournisseur Microsoft Primitive.
| Valeur | Signification |
|---|---|
|
Spécifie que l’algorithme cible est AES et que la clé doit donc être doublement développée. Cet indicateur n’est valide qu’avec l’algorithme CAPI_KDF. |
Valeur retournée
Retourne un code status qui indique la réussite ou l’échec de la fonction.
Remarques
Vous pouvez utiliser les identificateurs d’algorithme suivants dans la fonction BCryptOpenAlgorithmProvider avant d’appeler BCryptKeyDerivation :
- BCRYPT_CAPI_KDF_ALGORITHM
- BCRYPT_SP800108_CTR_HMAC_ALGORITHM
- BCRYPT_SP80056A_CONCAT_ALGORITHM
- BCRYPT_PBKDF2_ALGORITHM
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge | Windows 8 [applications de bureau | Applications UWP] |
| Serveur minimal pris en charge | Windows Server 2012 [applications de bureau | Applications UWP] |
| Plateforme cible | Windows |
| En-tête | bcrypt.h |
| Bibliothèque | Bcrypt.lib |
| DLL | Bcrypt.dll |