Función NCryptTranslateHandle (ncrypt.h)

La función NCryptTranslateHandle convierte un identificador CryptoAPI en un identificador de clave CNG.

Sintaxis

SECURITY_STATUS NCryptTranslateHandle(
  [out, optional] NCRYPT_PROV_HANDLE *phProvider,
  [out]           NCRYPT_KEY_HANDLE  *phKey,
  [in]            HCRYPTPROV         hLegacyProv,
  [in, optional]  HCRYPTKEY          hLegacyKey,
  [in, optional]  DWORD              dwLegacyKeySpec,
  [in]            DWORD              dwFlags
);

Parámetros

[out, optional] phProvider

Puntero a una variable NCRYPT_PROV_HANDLE que recibe el identificador del proveedor de almacenamiento de claves CNG que posee la clave CNG colocada en el parámetro phKey . Este parámetro puede ser NULL si no se necesita este identificador.

[out] phKey

Puntero a una variable NCRYPT_KEY_HANDLE que recibe el identificador de clave CNG.

[in] hLegacyProv

Identificador del proveedor CryptoAPI que contiene la clave que se va a traducir. Esta función traducirá la clave CryptoAPI que se encuentra en el contenedor de este proveedor.

[in, optional] hLegacyKey

Identificador de una clave CryptoAPI que se va a usar para ayudar a determinar la especificación de clave de la clave devuelta. Este parámetro se omite si el parámetro dwLegacyKeySpec contiene un valor distinto de cero.

Si hLegacyKey es NULL y dwLegacyKeySpec es cero, esta función intentará determinar la especificación clave del identificador hLegacyProv .

[in, optional] dwLegacyKeySpec

Especifica la especificación de clave para la clave. Puede ser uno de los valores siguientes.

Valor Significado
0
La clave no es ninguno de los tipos siguientes.
AT_KEYEXCHANGE
1
La clave es una clave de intercambio de claves.
AT_SIGNATURE
2
La clave es una clave de firma.
 

Si hLegacyKey es NULL y dwLegacyKeySpec es cero, esta función intentará determinar la especificación clave del identificador hLegacyProv .

[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 posibles códigos de retorno se incluyen, entre otros, los siguientes.

Código devuelto Descripción
ERROR_SUCCESS
La función se realizó correctamente.
NTE_BAD_FLAGS
El parámetro dwFlags contiene un valor que 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

Se trata de una función auxiliar diseñada para ayudar a las aplicaciones y componentes del sistema que actualmente usan CryptoAPI para realizar una transición correcta al uso de CNG.

Esta función solo se realizará correctamente si un proveedor de almacenamiento de claves CNG está registrado con un nombre o alias idéntico al nombre del proveedor de servicios criptográficos (CSP) al que hace referencia el parámetro hLegacyProv .

Esta función realizará los pasos siguientes para traducir el identificador de CSP en un identificador de clave CNG:

  1. Obtenga el nombre del CSP del identificador hLegacyProv .
  2. Abra el proveedor CNG cuyo nombre o alias sea idéntico al nombre de CSP.
  3. Obtenga el nombre del contenedor de claves actual en el CSP.
  4. Obtenga la clave CryptoAPI, traduzcala en una clave CNG y vuelva a ella en el parámetro phKey .
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 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ncrypt.h
Library Ncrypt.lib
Archivo DLL Ncrypt.dll