Función CryptGetHashParam (wincrypt.h)

Importante Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.
 
La función CryptGetHashParam recupera datos que rigen las operaciones de un objeto hash. El valor hash real se puede recuperar mediante esta función.

Sintaxis

BOOL CryptGetHashParam(
  [in]      HCRYPTHASH hHash,
  [in]      DWORD      dwParam,
  [out]     BYTE       *pbData,
  [in, out] DWORD      *pdwDataLen,
  [in]      DWORD      dwFlags
);

Parámetros

[in] hHash

Identificador del objeto hash que se va a consultar.

[in] dwParam

Tipo de consulta. Este parámetro se puede establecer en una de las siguientes consultas.

Valor Significado
HP_ALGID
Algoritmo hash
Un ALG_ID que indica el algoritmo especificado cuando se creó el objeto hash. Para obtener una lista de algoritmos hash, consulte CryptCreateHash.
HP_HASHSIZE
Tamaño del valor hash
Valor DWORD que indica el número de bytes en el valor hash. Este valor variará en función del algoritmo hash. Las aplicaciones deben recuperar este valor justo antes del valor de HP_HASHVAL para que se pueda asignar la cantidad correcta de memoria.
HP_HASHVAL
Valor del código hash
Valor hash o hash de mensaje para el objeto hash especificado por hHash. Este valor se genera en función de los datos proporcionados al objeto hash anteriormente a través de las funciones CryptHashData y CryptHashSessionKey .

La función CryptGetHashParam completa el hash. Después de llamar a CryptGetHashParam , no se pueden agregar más datos al hash. Se produce un error en las llamadas adicionales a CryptHashData o CryptHashSessionKey . Una vez finalizada la aplicación con el hash, se debe llamar a CryptDestroyHash para destruir el objeto hash.

 
Nota Los CSP pueden agregar más valores que esta función puede consultar.
 

[out] pbData

Puntero a un búfer que recibe los datos de valor especificados. La forma de estos datos varía, según el número de valor.

Este parámetro puede ser NULL para determinar el tamaño de memoria necesario.

[in, out] pdwDataLen

Puntero a un valor DWORD que especifica el tamaño, en bytes, del búfer pbData . Cuando se devuelve la función, el valor DWORD contiene el número de bytes almacenados en el búfer.

Si pbData es NULL, establezca el valor de pdwDataLen en cero.

Nota Al procesar los datos devueltos en el búfer, las aplicaciones deben usar el tamaño real de los datos devueltos. El tamaño real puede ser ligeramente menor que el tamaño del búfer especificado en la entrada. (En la entrada, los tamaños del búfer suelen especificarse lo suficientemente grandes como para asegurarse de que los datos de salida más grandes posibles se ajusten al búfer). En la salida, la variable a la que apunta este parámetro se actualiza para reflejar el tamaño real de los datos copiados en el búfer.
 

[in] dwFlags

Reservado para uso futuro y debe ser cero.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es TRUE.

Si se produce un error en la función, el valor devuelto es FALSE. Para obtener información de error extendida, llame a GetLastError.

Los códigos de error precedidos por "NTE" se generan mediante el CSP concreto que usa. A continuación se indican algunos códigos de error posibles.

Código devuelto Descripción
ERROR_INVALID_HANDLE
Uno de los parámetros especifica un identificador que no es válido.
ERROR_INVALID_PARAMETER
Uno de los parámetros contiene un valor que no es válido. Suele ser un puntero que no es válido.
ERROR_MORE_DATA
Si el búfer especificado por el parámetro pbData no es lo suficientemente grande como para contener los datos devueltos, la función establece el código ERROR_MORE_DATA y almacena el tamaño de búfer necesario, en bytes, en la variable a la que apunta pdwDataLen.
NTE_BAD_FLAGS
El parámetro dwFlags es distinto de cero.
NTE_BAD_HASH
El objeto hash especificado por el parámetro hHash no es válido.
NTE_BAD_TYPE
El parámetro dwParam especifica un número de valor desconocido.
NTE_BAD_UID
No se encuentra el contexto de CSP especificado cuando se creó el hash.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

ALG_ID

CryptCreateHash

CryptDestroyHash

CryptGetKeyParam

CryptHashData

CryptHashSessionKey

CryptSetHashParam

Funciones hash y firma digital