Compartir a través de


Función BCryptHashData (bcrypt.h)

La función BCryptHashData realiza un hash unidireccional o código de autenticación de mensajes (MAC) en un búfer de datos.

Sintaxis

NTSTATUS BCryptHashData(
  [in, out] BCRYPT_HASH_HANDLE hHash,
  [in]      PUCHAR             pbInput,
  [in]      ULONG              cbInput,
  [in]      ULONG              dwFlags
);

Parámetros

[in, out] hHash

Identificador del objeto hash o MAC que se va a usar para realizar la operación. Este identificador se obtiene llamando a la función BCryptCreateHash.

[in] pbInput

Puntero a un búfer que contiene los datos que se van a procesar. El parámetro cbInput contiene el número de bytes de este búfer. Esta función no modifica el contenido de este búfer.

[in] cbInput

Número de bytes del búfer de pbInput.

[in] dwFlags

Conjunto de marcas que modifican el comportamiento de esta función. Actualmente no se definen marcas, por lo que este parámetro debe ser cero.

Valor devuelto

Devuelve un código de estado que indica el éxito o error de la función.

Entre los códigos de retorno posibles se incluyen, entre otros, los siguientes.

Código devuelto Descripción
STATUS_SUCCESS
La función se realizó correctamente.
STATUS_INVALID_PARAMETER
Uno o varios parámetros no son válidos.
STATUS_INVALID_HANDLE
El identificador hash del parámetro hHash no es válido. Después de llamar a la función BCryptFinishHash para un identificador hash, ese identificador no se puede reutilizar.

Observaciones

Para combinar más de un búfer en el hash o MAC, puede llamar a esta función varias veces, pasando un búfer diferente cada vez. Para obtener el valor hash o MAC, llame a la función BCryptFinishHash. Después de llamar a la función BCryptFinishHash para un identificador especificado, ese identificador no se puede reutilizar.

Según los modos de procesador que admita un proveedor, se puede llamar a BCryptHashData desde el modo de usuario o el modo kernel. Los autores de llamadas en modo kernel se pueden ejecutar en PASSIVE_LEVELIRQL o DISPATCH_LEVEL IRQL. Si el nivel IRQL actual es DISPATCH_LEVEL, el identificador proporcionado en el parámetro hHash debe derivarse de un identificador de algoritmo devuelto por un proveedor que se abrió mediante la marca BCRYPT_PROV_DISPATCH y los punteros pasados a la función BCryptHashData deben hacer referencia a la memoria no paginada (o bloqueada).

Para llamar a esta función en modo kernel, use Cng.lib, que forma parte del Kit de desarrollo de controladores (DDK). Windows Server 2008 y Windows Vista: Para llamar a esta función en modo kernel, use Ksecdd.lib.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de bcrypt.h
biblioteca de Bcrypt.lib
DLL de Bcrypt.dll

Consulte también

BCryptCreateHash

BCryptFinishHash