Función BCryptFinishHash (bcrypt.h)

La función BCryptFinishHash recupera el valor hash o código de autenticación de mensajes (MAC) para los datos acumulados de llamadas anteriores a BCryptHashData.

Sintaxis

NTSTATUS BCryptFinishHash(
  [in, out] BCRYPT_HASH_HANDLE hHash,
  [out]     PUCHAR             pbOutput,
  [in]      ULONG              cbOutput,
  [in]      ULONG              dwFlags
);

Parámetros

[in, out] hHash

Identificador del objeto hash o MAC que se va a usar para calcular el hash o MAC. Este identificador se obtiene mediante una llamada a la función BCryptCreateHash . Después de llamar a esta función, no se puede volver a usar el identificador hash pasado a esta función, excepto en una llamada a BCryptDestroyHash.

[out] pbOutput

Puntero a un búfer que recibe el valor hash o MAC. El parámetro cbOutput contiene el tamaño de este búfer.

[in] cbOutput

Tamaño, en bytes, del búfer pbOutput . Este tamaño debe coincidir exactamente con el tamaño del valor hash o MAC.

El tamaño se puede obtener llamando a la función BCryptGetProperty para obtener la propiedad BCRYPT_HASH_LENGTH . Esto proporcionará el tamaño del valor hash o MAC para el algoritmo especificado.

[in] dwFlags

Conjunto de marcas que modifican el comportamiento de esta función. Actualmente no hay marcas definidas, 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 posibles códigos de retorno se incluyen, entre otros, los siguientes.

Código devuelto Descripción
STATUS_SUCCESS
La función se realizó correctamente.
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.
STATUS_INVALID_PARAMETER
Uno o más parámetros no son válidos. Esto incluye el caso en el que cbOutput no tiene el mismo tamaño que el hash.

Comentarios

En función de los modos de procesador que admita un proveedor, se puede llamar a BCryptFinishHash 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 está 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 BCryptFinishHash 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 Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado bcrypt.h
Library Bcrypt.lib
Archivo DLL Bcrypt.dll

Consulte también

BCryptHashData