Función BCryptSecretAgreement (bcrypt.h)
La función BCryptSecretAgreement crea un valor de acuerdo secreto a partir de una clave privada y pública.
Sintaxis
NTSTATUS BCryptSecretAgreement(
[in] BCRYPT_KEY_HANDLE hPrivKey,
[in] BCRYPT_KEY_HANDLE hPubKey,
[out] BCRYPT_SECRET_HANDLE *phAgreedSecret,
[in] ULONG 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 proceder del mismo proveedor de algoritmos criptográficos CNG.
[in] hPubKey
Identificador de la clave pública usar para crear el valor del contrato secreto. Esta clave y la clave hPrivKey deben proceder del mismo proveedor de algoritmos criptográficos CNG.
[out] phAgreedSecret
Puntero a un BCRYPT_SECRET_HANDLE que recibe un identificador que representa el valor del contrato secreto. Este identificador se debe liberar pasando a la función BCryptDestroySecret cuando ya no se necesite.
[in] dwFlags
Conjunto de marcas que modifican el comportamiento de esta función. No se definen marcas para esta función.
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 |
---|---|
|
La función se realizó correctamente. |
|
El identificador de clave del hPrivKey o parámetro hPubKey no es válido. |
|
Uno o varios parámetros no son válidos. |
|
El identificador de clave del parámetro hPrivKey no es una clave Diffie-Hellman. |
Observaciones
En función de los modos de procesador que admita un proveedor, se puede llamar a BCryptSecretAgreement desde el modo de usuario o el modo kernel. Los autores de llamadas en modo kernel se pueden ejecutar en PASSIVE_LEVELIRQL o DISPATCH_LEVEL IRQL. Si el nivel de IRQL actual es DISPATCH_LEVEL, los identificadores proporcionados en el hPrivKey y parámetros hPubKey deben derivarse de un identificador de algoritmo devuelto por un proveedor que se abrió mediante la marca BCRYPT_PROV_DISPATCH y los punteros pasados al BCryptSecretAgreement función deben hacer referencia a la memoria no paginada (o bloqueada).
Para llamar a esta función en modo kernel, use Cng.lib, que forma parte del Kit de desarrollo de controladores (DDK). Windows Server 2008 y Windows Vista: Para llamar a esta función en modo kernel, use Ksecdd.lib.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
bcrypt.h |
biblioteca de |
Bcrypt.lib |
DLL de |
Bcrypt.dll |