Função BCryptSecretAgreement (bcrypt.h)
A função BCryptSecretAgreement cria um valor de contrato secreto de uma chave pública e privada.
Sintaxe
NTSTATUS BCryptSecretAgreement(
[in] BCRYPT_KEY_HANDLE hPrivKey,
[in] BCRYPT_KEY_HANDLE hPubKey,
[out] BCRYPT_SECRET_HANDLE *phAgreedSecret,
[in] ULONG dwFlags
);
Parâmetros
[in] hPrivKey
O identificador da chave privada a ser usada para criar o valor do contrato secreto. Essa chave e a chave hPubKey devem vir do mesmo provedor de algoritmo criptográfico CNG.
[in] hPubKey
O identificador da chave pública a ser usada para criar o valor do contrato secreto. Essa chave e a chave hPrivKey devem vir do mesmo provedor de algoritmo criptográfico CNG.
[out] phAgreedSecret
Um ponteiro para um BCRYPT_SECRET_HANDLE que recebe um identificador que representa o valor do contrato secreto. Esse identificador deve ser liberado passando-o para a função BCryptDestroySecret quando não for mais necessário.
[in] dwFlags
Um conjunto de sinalizadores que modificam o comportamento dessa função. Nenhum sinalizador é definido para essa função.
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 identificador de chave no parâmetro hPrivKey ou hPubKey não é válido. |
|
Um ou mais dos parâmetros não são válidos. |
|
O identificador de chave no parâmetro hPrivKey não é uma chave Diffie-Hellman. |
Comentários
Dependendo de quais modos de processador um provedor dá suporte, BCryptSecretAgreement 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, os identificadores fornecidos nos parâmetros hPrivKey e hPubKey deverão ser derivados de um identificador de algoritmo retornado por um provedor que foi aberto usando o sinalizador BCRYPT_PROV_DISPATCH e quaisquer ponteiros passados para a função BCryptSecretAgreement 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
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