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 usado para criar o valor do contrato secreto. Essa chave e a chave de hPubKey devem vir do mesmo provedor de algoritmo criptográfico CNG.
[in] hPubKey
O identificador do chave pública a ser usado 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 ela não for mais necessária.
[in] dwFlags
Um conjunto de sinalizadores que modificam o comportamento dessa função. Nenhum sinalizador é definido para essa função.
Valor de retorno
Retorna um código de 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 parâmetros não são válidos. |
|
O identificador de chave no parâmetro hPrivKey não é uma chave Diffie-Hellman. |
Observações
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 no hPrivKey e parâmetros de 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 devem 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 |
---|---|
de cliente com suporte mínimo | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | bcrypt.h |
biblioteca | Bcrypt.lib |
de DLL |
Bcrypt.dll |