Compartir a través de


Función CryptDestroyKey (wincrypt.h)

Importante Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.
 
La función CryptDestroyKey libera el identificador al que hace referencia el parámetro hKey . Una vez liberado un identificador de clave, ya no es válido y no se puede volver a usar.

Si el identificador hace referencia a una clave de sesión o a una clave pública que se ha importado al proveedor de servicios criptográficos (CSP) a través de CryptImportKey, esta función destruye la clave y libera la memoria que usó la clave. Muchos CSP sobrescriben la memoria en la que se mantuvo la clave antes de liberarla. Sin embargo, esta función no destruye el par de claves pública o privada subyacente. Solo se destruye el identificador.

Sintaxis

BOOL CryptDestroyKey(
  [in] HCRYPTKEY hKey
);

Parámetros

[in] hKey

Identificador de la clave que se va a destruir.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Los códigos de error precedidos por "NTE" se generan mediante el CSP en particular que se usa. Algunos códigos de error posibles se enumeran en la tabla siguiente.

Código devuelto Descripción
ERROR_BUSY
El objeto de clave especificado por hKey se está usando actualmente y no se puede destruir.
ERROR_INVALID_HANDLE
El parámetro hKey especifica un identificador que no es válido.
ERROR_INVALID_PARAMETER
El parámetro hKey contiene un valor que no es válido.
NTE_BAD_KEY
El parámetro hKey no contiene un identificador válido para una clave.
NTE_BAD_UID
No se encuentra el contexto de CSP que se especificó cuando se creó la clave.

Comentarios

Las claves ocupan el espacio de memoria del sistema operativo y el espacio de memoria del CSP. Algunos CSP se implementan en hardware con recursos de memoria limitados. Las aplicaciones deben destruir todas las claves con la función CryptDestroyKey cuando terminen con ellas.

Todos los identificadores de clave que se han creado o importado mediante un CSP específico deben destruirse antes de que ese identificador de CSP se libere con la función CryptReleaseContext .

Ejemplos

Para obtener un ejemplo que usa la función CryptDestroyKey , vea Ejemplo del programa C: Crear y aplicar hash a una clave de sesión.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

CryptDeriveKey

CryptGenKey

CryptGetUserKey

CryptImportKey

Generación de claves y funciones de Exchange