Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
La función BCryptKeyDerivation deriva una clave sin necesidad de un contrato secreto. Es similar a la funcionalidad de BCryptDeriveKey , pero no requiere un valor de BCRYPT_SECRET_HANDLE como entrada.
Sintaxis
NTSTATUS BCryptKeyDerivation(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] BCryptBufferDesc *pParameterList,
[out] PUCHAR pbDerivedKey,
[in] ULONG cbDerivedKey,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Parámetros
[in] hKey
Identificador de la clave de entrada.
[in, optional] pParameterList
Puntero a una estructura BCryptBufferDesc que contiene los parámetros de KDF. Este parámetro es opcional y puede ser NULL si no es necesario. Los parámetros pueden ser específicos de una función de derivación de claves (KDF) o genérica. En la tabla siguiente se muestran los parámetros obligatorios y opcionales para KDF específicos implementados por el proveedor primitivo de Microsoft.
| KDF | Parámetro | Obligatorio |
|---|---|---|
| SP800-108 HMAC en modo contador | KDF_LABEL | sí |
| KDF_CONTEXT | sí | |
| KDF_HASH_ALGORITHM | sí | |
| SP800-56A | KDF_ALGORITHMID | sí |
| KDF_PARTYUINFO | sí | |
| KDF_PARTYVINFO | sí | |
| KDF_HASH_ALGORITHM | sí | |
| KDF_SUPPPUBINFO | no | |
| KDF_SUPPPRIVINFO | no | |
| PBKDF2 | KDF_HASH_ALGORITHM | sí |
| KDF_SALT | sí | |
| KDF_ITERATION_COUNT | no | |
| CAPI_KDF | KDF_HASH_ALGORITHM | sí |
Se puede usar el siguiente parámetro genérico:
- KDF_GENERIC_PARAMETER
SP800-108 HMAC en modo contador:
- 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: el valor predeterminado es 10000
CAPI_KDF
- KDF_GENERIC_PARAMETER = No usado
[out] pbDerivedKey
Dirección de un búfer que recibe la clave. El parámetro cbDerivedKey contiene el tamaño de este búfer.
[in] cbDerivedKey
Tamaño, en bytes, del búfer al que apunta el parámetro pbDerivedKey .
[out] pcbResult
Puntero a una variable que recibe el número de bytes copiados en el búfer al que apunta el parámetro pbDerivedKey .
[in] dwFlags
Marcas que modifican el comportamiento de esta función. El siguiente valor se puede usar con el proveedor Primitivo de Microsoft.
| Valor | Significado |
|---|---|
|
Especifica que el algoritmo de destino es AES y que la clave debe expandirse doblemente. Esta marca solo es válida con el algoritmo CAPI_KDF. |
Valor devuelto
Devuelve un código de estado que indica el éxito o error de la función.
Comentarios
Puede usar los siguientes identificadores de algoritmo en la función BCryptOpenAlgorithmProvider antes de llamar a BCryptKeyDerivation:
- BCRYPT_CAPI_KDF_ALGORITHM
- BCRYPT_SP800108_CTR_HMAC_ALGORITHM
- BCRYPT_SP80056A_CONCAT_ALGORITHM
- BCRYPT_PBKDF2_ALGORITHM
Requisitos
| Requisito | Value |
|---|---|
| Cliente mínimo compatible | Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP] |
| Servidor mínimo compatible | Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP] |
| Plataforma de destino | Windows |
| Encabezado | bcrypt.h |
| Library | Bcrypt.lib |
| Archivo DLL | Bcrypt.dll |