Função BCryptFinishHash (bcrypt.h)

A função BCryptFinishHash recupera o valor de hash ou MAC ( Código de Autenticação de Mensagem ) para os dados acumulados de chamadas anteriores para BCryptHashData.

Sintaxe

NTSTATUS BCryptFinishHash(
  [in, out] BCRYPT_HASH_HANDLE hHash,
  [out]     PUCHAR             pbOutput,
  [in]      ULONG              cbOutput,
  [in]      ULONG              dwFlags
);

Parâmetros

[in, out] hHash

O identificador do objeto hash ou MAC a ser usado para calcular o hash ou MAC. Esse identificador é obtido chamando a função BCryptCreateHash . Depois que essa função tiver sido chamada, o identificador de hash passado para essa função não poderá ser usado novamente, exceto em uma chamada para BCryptDestroyHash.

[out] pbOutput

Um ponteiro para um buffer que recebe o valor de hash ou MAC. O parâmetro cbOutput contém o tamanho desse buffer.

[in] cbOutput

O tamanho, em bytes, do buffer pbOutput . Esse tamanho deve corresponder exatamente ao tamanho do valor de hash ou MAC.

O tamanho pode ser obtido chamando a função BCryptGetProperty para obter a propriedade BCRYPT_HASH_LENGTH . Isso fornecerá o tamanho do valor de hash ou MAC para o algoritmo especificado.

[in] dwFlags

Um conjunto de sinalizadores que modificam o comportamento dessa função. Nenhum sinalizador está definido no momento, portanto, esse parâmetro deve ser zero.

Retornar valor

Retorna um código status que indica o êxito ou a falha da função.

Os códigos de retorno possíveis incluem, mas não se limitam a, o seguinte.

Código de retorno Descrição
STATUS_SUCCESS
A função foi bem-sucedida.
STATUS_INVALID_HANDLE
O identificador de hash no parâmetro hHash não é válido. Depois que a função BCryptFinishHash tiver sido chamada para um identificador de hash, esse identificador não poderá ser reutilizado.
STATUS_INVALID_PARAMETER
Um ou mais dos parâmetros não são válidos. Isso inclui o caso em que cbOutput não tem o mesmo tamanho que o hash.

Comentários

Dependendo de quais modos de processador um provedor dá suporte, BCryptFinishHash pode ser chamado do modo de usuário ou do modo kernel. Os chamadores do modo kernel podem ser executados em PASSIVE_LEVELIRQL ou DISPATCH_LEVEL IRQL. Se o nível IRQL atual for DISPATCH_LEVEL, o identificador fornecido no parâmetro hHash deverá ser derivado de um identificador de algoritmo retornado por um provedor que foi aberto usando o sinalizador BCRYPT_PROV_DISPATCH e todos os ponteiros passados para a função BCryptFinishHash deverão se referir à memória não paga (ou bloqueada).

Para chamar essa função no modo kernel, use Cng.lib, que faz parte do DDK (Driver Development Kit). Windows Server 2008 e Windows Vista: Para chamar essa função no modo kernel, use Ksecdd.lib.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho bcrypt.h
Biblioteca Bcrypt.lib
DLL Bcrypt.dll

Confira também

BCryptHashData