Função CryptHashSessionKey (wincrypt.h)

Importante Essa API foi preterida. O software novo e existente deve começar a usar APIs de Criptografia de Próxima Geração. A Microsoft pode remover essa API em versões futuras.
 
A função CryptHashSessionKey calcula o hash criptográfico de um objeto de chave de sessão . Essa função pode ser chamada várias vezes com o mesmo identificador de hash para calcular o hash de várias chaves. As chamadas para CryptHashSessionKey podem ser intercaladas com chamadas para CryptHashData.

Antes de chamar essa função, CryptCreateHash deve ser chamado para criar o identificador de um objeto hash.

Sintaxe

BOOL CryptHashSessionKey(
  [in] HCRYPTHASH hHash,
  [in] HCRYPTKEY  hKey,
  [in] DWORD      dwFlags
);

Parâmetros

[in] hHash

Um identificador para o objeto hash.

[in] hKey

Um identificador para o objeto de chave a ser hash.

[in] dwFlags

O valor do sinalizador a seguir é definido.

Valor Significado
CRYPT_LITTLE_ENDIAN
0x00000001
Quando esse sinalizador é definido, os bytes da chave são hash no formato little-endian . Observe que, por padrão (quando dwFlags é zero), os bytes da chave são hashed no formato big-endian .

Retornar valor

Se a função for bem-sucedida, o valor retornado será TRUE.

Se a função falhar, o valor retornado será FALSE. Para obter informações de erro estendidas, chame GetLastError.

Os códigos de erro precedidos por "NTE" são gerados pelo CSP específico que você está usando. Alguns códigos de erro possíveis seguem.

Código de retorno Descrição
ERROR_INVALID_HANDLE
Um dos parâmetros especifica um identificador que não é válido.
ERROR_INVALID_PARAMETER
Um dos parâmetros contém um valor que não é válido. Isso geralmente é um ponteiro que não é válido.
NTE_BAD_ALGID
O identificador hHash especifica um algoritmo que esse CSP não dá suporte.
NTE_BAD_FLAGS
O parâmetro dwFlags não é zero.
NTE_BAD_HASH
O objeto hash especificado pelo parâmetro hHash não é válido.
NTE_BAD_HASH_STATE
Foi feita uma tentativa de adicionar dados a um objeto hash que já está marcado como "concluído".
NTE_BAD_KEY
Um algoritmo de hash com chave está sendo usado, mas a chave de sessão não é mais válida. Esse erro será gerado se a chave de sessão for destruída antes da conclusão da operação de hash.
NTE_BAD_UID
O contexto CSP especificado quando o objeto hash foi criado não pode ser encontrado.
NTE_FAIL
A função falhou de alguma forma inesperada.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

Cryptcreatehash

Cryptgenkey

Crypthashdata

Funções de hash e assinatura digital