Función CryptVerifyDetachedMessageHash (wincrypt.h)

La función CryptVerifyDetachedMessageHash comprueba un hash desasociado.

Sintaxis

BOOL CryptVerifyDetachedMessageHash(
  [in]      PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]      BYTE                     *pbDetachedHashBlob,
  [in]      DWORD                    cbDetachedHashBlob,
  [in]      DWORD                    cToBeHashed,
  [in]      const BYTE * []          rgpbToBeHashed,
  [in]      DWORD []                 rgcbToBeHashed,
  [out]     BYTE                     *pbComputedHash,
  [in, out] DWORD                    *pcbComputedHash
);

Parámetros

[in] pHashPara

Puntero a una estructura CRYPT_HASH_MESSAGE_PARA que contiene los parámetros hash.

[in] pbDetachedHashBlob

Puntero al hash desasociado codificado.

[in] cbDetachedHashBlob

Tamaño, en bytes, del hash desasociado.

[in] cToBeHashed

Número de elementos de las matrices rgpbToBeHashed y rgcbToBeHashed .

[in] rgpbToBeHashed

Matriz de punteros a búferes de contenido que se van a aplicar hash.

[in] rgcbToBeHashed

Matriz de tamaños, en bytes, para los búferes de contenido a los que apuntan los elementos de la matriz rgcbToBeHashed .

[out] pbComputedHash

Puntero a un búfer para recibir el hash calculado.

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] pcbComputedHash

Puntero a un DWORD que especifica el tamaño, en bytes, del búfer pbComputedHash . Cuando la función devuelve, esta DWORD contiene el tamaño, en bytes, del hash creado. El hash no se devolverá si este parámetro es NULL.

Nota Al procesar los datos devueltos, 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 caben en el 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.
 

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).

Si se produce un error en la función, el valor devuelto es cero (FALSE).

Para obtener información de error extendida, llame a GetLastError.

A continuación se enumeran los códigos de error devueltos normalmente por la función GetLastError .

Código devuelto Descripción
CRYPT_E_UNEXPECTED_MSG_TYPE
No es un mensaje criptográfico con hash.
E_INVALIDARG
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.
ERROR_MORE_DATA
Si el búfer especificado por el parámetro pbComputedHash 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 pcbComputedHash.
 
Nota Los errores de las funciones llamadas CryptCreateHash, CryptHashData y CryptGetHashParam podrían propagarse a esta función.

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

Consulte también

CryptVerifyMessageHash

Funciones de mensaje simplificadas