Função NCryptSecretAgreement (ncrypt.h)

A função NCryptSecretAgreement cria um valor de contrato secreto de uma chave pública e privada.

Sintaxe

SECURITY_STATUS NCryptSecretAgreement(
  [in]  NCRYPT_KEY_HANDLE    hPrivKey,
  [in]  NCRYPT_KEY_HANDLE    hPubKey,
  [out] NCRYPT_SECRET_HANDLE *phAgreedSecret,
  [in]  DWORD                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 armazenamento de chaves.

[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 armazenamento de chaves.

[out] phAgreedSecret

Um ponteiro para uma variável NCRYPT_SECRET_HANDLE que recebe um identificador que representa o valor do contrato secreto. Quando esse identificador não for mais necessário, libere-o passando-o para a função NCryptFreeObject .

[in] dwFlags

Sinalizadores que modificam o comportamento da função. Isso pode ser zero ou uma combinação de um ou mais dos valores a seguir. O conjunto de sinalizadores válidos é específico para cada provedor de armazenamento de chaves. O sinalizador a seguir se aplica a todos os provedores.

Valor Significado
NCRYPT_SILENT_FLAG
Solicita que o KSP (provedor de serviços de chave) não exiba nenhuma interface do usuário. Se o provedor precisar exibir a interface do usuário para operar, a chamada falhará e o KSP deverá definir o código de erro NTE_SILENT_CONTEXT como o último erro.

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
ERROR_SUCCESS
A função foi bem-sucedida.
NTE_INVALID_HANDLE
O parâmetro hPrivKey ou hPubKey não é válido.
NTE_INVALID_PARAMETER
Um ou mais dos parâmetros não são válidos.
NTE_NO_MEMORY
Ocorreu uma falha de alocação de memória.

Comentários

Um serviço não deve chamar essa função de sua função StartService. Se um serviço chamar essa função de sua função StartService, um deadlock poderá ocorrer e o serviço poderá parar de responder.

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 ncrypt.h
Biblioteca Ncrypt.lib
DLL Ncrypt.dll

Confira também

NCryptFreeObject