Função BCryptDuplicateHash (bcrypt.h)
A função BCryptDuplicateHash duplica um objeto mac (código de autenticação de mensagem) ou hash existente. O objeto duplicado contém todo o estado e os dados contidos no objeto original no ponto de duplicação.
Sintaxe
NTSTATUS BCryptDuplicateHash(
[in] BCRYPT_HASH_HANDLE hHash,
[out] BCRYPT_HASH_HANDLE *phNewHash,
[out] PUCHAR pbHashObject,
[in] ULONG cbHashObject,
[in] ULONG dwFlags
);
Parâmetros
[in] hHash
O identificador do objeto hash ou MAC a ser duplicado.
[out] phNewHash
Um ponteiro para um valor BCRYPT_HASH_HANDLE que recebe o identificador que representa o hash duplicado ou o objeto MAC.
[out] pbHashObject
Um ponteiro para um buffer que recebe o hash duplicado ou o objeto MAC. O parâmetro cbHashObject contém o tamanho desse buffer. O tamanho necessário desse buffer pode ser obtido chamando a função BCryptGetProperty para obter a propriedade BCRYPT_OBJECT_LENGTH . Isso fornecerá o tamanho do objeto hash para o algoritmo especificado.
Quando o identificador de hash duplicado for liberado, libere essa memória.
[in] cbHashObject
O tamanho, em bytes, do buffer pbHashObject .
[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 |
---|---|
|
A função foi bem-sucedida. |
|
O tamanho do objeto hash especificado pelo parâmetro cbHashObject não é grande o suficiente para manter o objeto hash. |
|
O identificador de hash no parâmetro hHash não é válido. |
|
Um ou mais dos parâmetros não são válidos. |
Comentários
Essa função é útil ao calcular um hash ou MAC em um bloco de dados comuns. Depois que os dados comuns forem processados, o objeto hash ou MAC poderá ser duplicado e, em seguida, os dados exclusivos poderão ser adicionados aos objetos individuais.
Dependendo de quais modos de processador um provedor dá suporte, BCryptDuplicateHash 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 BCryptDestroyKey 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 |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de