Función NCryptSecretAgreement (ncrypt.h)

La función NCryptSecretAgreement crea un valor de acuerdo secreto a partir de una clave privada y pública.

Sintaxis

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

Identificador de la clave privada que se va a usar para crear el valor del contrato secreto. Esta clave y la clave hPubKey deben provenir del mismo proveedor de almacenamiento de claves.

[in] hPubKey

Identificador de la clave pública que se va a usar para crear el valor del contrato secreto. Esta clave y la clave hPrivKey deben provenir del mismo proveedor de almacenamiento de claves.

[out] phAgreedSecret

Puntero a una variable NCRYPT_SECRET_HANDLE que recibe un identificador que representa el valor del contrato secreto. Cuando este identificador ya no sea necesario, suéltelo pasando a la función NCryptFreeObject .

[in] dwFlags

Marcas que modifican el comportamiento de la función. Puede ser cero o una combinación de uno o varios de los valores siguientes. El conjunto de marcas válidas es específico de cada proveedor de almacenamiento de claves. La marca siguiente se aplica a todos los proveedores.

Valor Significado
NCRYPT_SILENT_FLAG
Solicita que el proveedor de servicios clave (KSP) no muestre ninguna interfaz de usuario. Si el proveedor debe mostrar la interfaz de usuario para funcionar, se produce un error en la llamada y el KSP debe establecer el código de error NTE_SILENT_CONTEXT como último error.

Valor devuelto

Devuelve un código de estado que indica el éxito o error de la función.

Entre los códigos de retorno posibles se incluyen, entre otros, los siguientes.

Código devuelto Descripción
ERROR_SUCCESS
La función se realizó correctamente.
NTE_INVALID_HANDLE
El parámetro hPrivKey o hPubKey no es válido.
NTE_INVALID_PARAMETER
Uno o más parámetros no son válidos.
NTE_NO_MEMORY
Error de asignación de memoria.

Comentarios

Un servicio no debe llamar a esta función desde su función StartService. Si un servicio llama a esta función desde su función StartService, se puede producir un interbloqueo y el servicio puede dejar de responder.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado ncrypt.h
Library Ncrypt.lib
Archivo DLL Ncrypt.dll

Consulte también

NCryptFreeObject