Compartilhar via


Função BCryptDeriveKeyCapi (bcrypt.h)

A função BCryptDeriveKeyCapi deriva uma chave de um valor de hash.

Essa função é fornecida como uma função auxiliar para ajudar a migrar aplicativos herdados baseados em CAPI (API de Criptografia) para usar a API de Criptografia: CNG (Próxima Geração). A função BCryptDeriveKeyCapi executa a derivação de chave de uma maneira compatível com a função CAPI CryptDeriveKey .

Sintaxe

NTSTATUS BCryptDeriveKeyCapi(
  [in]           BCRYPT_HASH_HANDLE hHash,
  [in, optional] BCRYPT_ALG_HANDLE  hTargetAlg,
  [out]          PUCHAR             pbDerivedKey,
  [in]           ULONG              cbDerivedKey,
  [in]           ULONG              dwFlags
);

Parâmetros

[in] hHash

O identificador do objeto hash. O identificador é obtido chamando a função BCryptCreateHash . Quando terminar de usar o identificador, você deverá liberá-lo chamando a função BCryptDestroyHash .

[in, optional] hTargetAlg

O identificador do objeto de algoritmo. Esse pode ser um valor ALG_ID compatível com a função CryptDeriveKey .

Nota Limitações no CAPI e na expansão de chave impedem o uso de qualquer algoritmo de hash que gere uma saída maior que 512 bits.
 

[out] pbDerivedKey

Um ponteiro para o buffer que recebe a chave derivada.

[in] cbDerivedKey

O tamanho, em caracteres, da chave derivada apontada pelo parâmetro pbDerivedKey .

[in] dwFlags

Esse parâmetro é reservado e deve ser definido como 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 no parâmetro hHash ou hTargetAlg não é válido.
STATUS_INVALID_PARAMETER
O valor no parâmetro cbDerivedKey é maior que o dobro do tamanho da saída da função de hash.
STATUS_NO_MEMORY
Ocorreu uma falha de alocação de memória.

Comentários

Essa função não dá suporte à funcionalidade de sal PK da função CapI CryptDeriveKey .

Requisitos

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