BCryptKeyDerivation, fonction (bcrypt.h)
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 |