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 |
---|---|
|
La función se realizó correctamente. |
|
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. |
|
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 |