Función BCryptDuplicateHash (bcrypt.h)
La función BCryptDuplicateHash duplica un objeto hash o código de autenticación de mensajes (MAC) existente. El objeto duplicado contiene todo el estado y los datos contenidos en el objeto original en el punto de duplicación.
Sintaxis
NTSTATUS BCryptDuplicateHash(
[in] BCRYPT_HASH_HANDLE hHash,
[out] BCRYPT_HASH_HANDLE *phNewHash,
[out] PUCHAR pbHashObject,
[in] ULONG cbHashObject,
[in] ULONG dwFlags
);
Parámetros
[in] hHash
Identificador del objeto hash o MAC que se va a duplicar.
[out] phNewHash
Puntero a un valor de BCRYPT_HASH_HANDLE que recibe el identificador que representa el hash duplicado o el objeto MAC.
[out] pbHashObject
Puntero a un búfer que recibe el hash duplicado o el objeto MAC. El parámetro cbHashObject contiene el tamaño de este búfer. El tamaño necesario de este búfer se puede obtener llamando a la función BCryptGetProperty para obtener la propiedad BCRYPT_OBJECT_LENGTH . Esto proporcionará el tamaño del objeto hash para el algoritmo especificado.
Cuando se libere el identificador hash duplicado, libere esta memoria.
[in] cbHashObject
Tamaño, en bytes, del búfer pbHashObject .
[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 tamaño del objeto hash especificado por el parámetro cbHashObject no es lo suficientemente grande como para contener el objeto hash. |
|
El identificador hash del parámetro hHash no es válido. |
|
Uno o más parámetros no son válidos. |
Comentarios
Esta función es útil al calcular un hash o MAC en un bloque de datos comunes. Una vez procesados los datos comunes, el hash o el objeto MAC se pueden duplicar y, a continuación, los datos únicos se pueden agregar a los objetos individuales.
En función de los modos de procesador que admita un proveedor, se puede llamar a BCryptDuplicateHash 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 BCryptDestroyKey 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 |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de