Función CryptHashMessage (wincrypt.h)
La función CryptHashMessage crea un hash del mensaje.
Sintaxis
BOOL CryptHashMessage(
[in] PCRYPT_HASH_MESSAGE_PARA pHashPara,
[in] BOOL fDetachedHash,
[in] DWORD cToBeHashed,
[in] const BYTE * [] rgpbToBeHashed,
[in] DWORD [] rgcbToBeHashed,
[out] BYTE *pbHashedBlob,
[in, out] DWORD *pcbHashedBlob,
[out, optional] BYTE *pbComputedHash,
[in, out, optional] DWORD *pcbComputedHash
);
Parámetros
[in] pHashPara
Puntero a una estructura CRYPT_HASH_MESSAGE_PARA que contiene los parámetros hash.
[in] fDetachedHash
Si este parámetro se establece en TRUE, solo pbComputedHash se codifica en pbHashedBlob. De lo contrario, se codifican rgpbToBeHashed y pbComputedHash .
[in] cToBeHashed
Número de elementos de matriz en rgpbToBeHashed y rgcbToBeHashed. Este parámetro solo puede ser uno a menos que fDetachedHash esté establecido en TRUE.
[in] rgpbToBeHashed
Matriz de punteros a búferes que contienen el contenido que se va a aplicar un algoritmo hash.
[in] rgcbToBeHashed
Matriz de tamaños, en bytes, de los búferes a los que apunta rgpbToBeHashed.
[out] pbHashedBlob
Puntero a un búfer para recibir el mensaje hash codificado para la transmisión.
Este parámetro puede ser NULL si el mensaje hash no es necesario para el procesamiento adicional o para establecer el tamaño del mensaje con hash con fines de asignación de memoria. No se devolverá un mensaje hash si este parámetro es NULL. Para obtener más información, vea Recuperación de datos de longitud desconocida.
[in, out] pcbHashedBlob
Puntero a un DWORD que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pbHashedBlob . Cuando se devuelve la función, esta variable contiene el tamaño, en bytes, del mensaje descifrado copiado en pbHashedBlob. Este parámetro debe ser la dirección de un DWORD y no NULL o la longitud del búfer no se devolverá.
[out, optional] pbComputedHash
Puntero a un búfer para recibir el valor hash recién creado. Este parámetro puede ser NULL si el hash recién creado no es necesario para el procesamiento adicional o para establecer el tamaño del hash con fines de asignación de memoria. Para obtener más información, vea Recuperación de datos de longitud desconocida.
[in, out, optional] pcbComputedHash
Puntero a un DWORD que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pbComputedHash . Cuando se devuelve la función, este DWORD contiene el tamaño, en bytes, del hash recién creado que se copió en pbComputedHash.
Valor devuelto
Si la función se ejecuta correctamente, la función devuelve un valor distinto de cero (TRUE).
Si se produce un error en la función, devuelve cero (FALSE). Para obtener información de error extendida, llame a GetLastError.
Código devuelto | Descripción |
---|---|
|
El tipo de codificación de mensajes no es válido. Actualmente solo se admiten PKCS_7_ASN_ENCODING. CbSize en *pHashPara no es válido. |
|
Si el búfer especificado por el parámetro pbHashedBlob 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 pbHashedBlob. |
Si se produce un error en la función, GetLastError puede devolver un error de codificación y descodificación de sintaxis abstracta uno (ASN.1). Para obtener información sobre estos errores, vea Valores devueltos de codificación y descodificación de ASN.1.
Requisitos
Requisito | Value |
---|---|
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 | Crypt32.lib |
Archivo DLL | Crypt32.dll |