Función NCryptOpenKey (ncrypt.h)
La función NCryptOpenKey abre una clave que existe en el proveedor de almacenamiento de claves CNG especificado.
Sintaxis
SECURITY_STATUS NCryptOpenKey(
[in] NCRYPT_PROV_HANDLE hProvider,
[out] NCRYPT_KEY_HANDLE *phKey,
[in] LPCWSTR pszKeyName,
[in] DWORD dwLegacyKeySpec,
[in] DWORD dwFlags
);
Parámetros
[in] hProvider
Identificador del proveedor de almacenamiento de claves desde el que se va a abrir la clave.
[out] phKey
Puntero a una variable NCRYPT_KEY_HANDLE que recibe el identificador de clave. Cuando haya terminado de usar este identificador, suéltelo pasando a la función NCryptFreeObject .
[in] pszKeyName
Puntero a una cadena Unicode terminada en null que contiene el nombre de la clave que se va a recuperar.
[in] dwLegacyKeySpec
Identificador heredado que especifica el tipo de clave. Puede ser uno de los valores siguientes.
Valor | Significado |
---|---|
|
La clave es una clave de intercambio de claves. |
|
La clave es una clave de firma. |
|
La clave no es ninguno de los tipos anteriores. |
[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.
Valor devuelto
Devuelve un código de estado que indica el éxito o error de la función.
Entre los posibles códigos de retorno se incluyen, entre otros, los siguientes.
Código devuelto | Descripción |
---|---|
|
La función se realizó correctamente. |
|
El parámetro dwFlags contiene un valor que no es válido. |
|
No se encontró la clave especificada. |
|
El parámetro hProvider no es válido. |
|
Uno o más parámetros no son válidos. |
|
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.
Por motivos de rendimiento, los KSP basados en software de Microsoft almacenan en caché el material de clave privada de la autoridad de seguridad local (LSA) siempre que se abra un identificador para la clave. El LSA es un proceso de sistema con privilegios. Por lo tanto, otros usuarios no pueden acceder a esta copia almacenada en caché de la clave a menos que el usuario tenga privilegios de administrador en el sistema. Este comportamiento no se puede modificar a través de la configuración.
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 |