Función BCryptExportKey (bcrypt.h)
La función
Sintaxis
NTSTATUS BCryptExportKey(
[in] BCRYPT_KEY_HANDLE hKey,
[in] BCRYPT_KEY_HANDLE hExportKey,
[in] LPCWSTR pszBlobType,
[out] PUCHAR pbOutput,
[in] ULONG cbOutput,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Parámetros
[in] hKey
Identificador de la clave que se va a exportar.
[in] hExportKey
Identificador de la clave con la que se va a ajustar la clave exportada. Use este parámetro al exportar blobs de tipo BCRYPT_AES_WRAP_KEY_BLOB; De lo contrario, establézcalo en NULL.
Windows Server 2008 y Windows Vista: Este parámetro no se usa y debe establecerse en NULL.
[in] pszBlobType
Cadena Unicode terminada en NULL que contiene un identificador que especifica el tipo de BLOB que se va a exportar. Puede ser uno de los siguientes valores.
Valor | Significado |
---|---|
|
Exporte una clave ajustada AES. El parámetro hExportKey debe hacer referencia a un puntero BCRYPT_KEY_HANDLE válido a la clave de cifrado de claves y la clave representada por el parámetro hKey debe ser un múltiplo de 8 bytes de longitud.
Windows Server 2008 y Windows Vista: no se admite este tipo de BLOB . |
|
Exporte un par de claves pública y privada Diffie-Hellman . El búfer pbOutput recibe una estructura BCRYPT_DH_KEY_BLOB inmediatamente seguida de los datos de clave. |
|
Exporte una clave pública Diffie-Hellman . El búfer pbOutput recibe una estructura BCRYPT_DH_KEY_BLOB inmediatamente seguida de los datos de clave. |
|
Exporte un par de claves pública y privada de DSA. El búfer de pbOutput de Windows 8: comienza compatibilidad con BCRYPT_DSA_KEY_BLOB_V2. |
|
Exporte una clave pública DSA. El búfer de pbOutput de Windows 8: comienza compatibilidad con BCRYPT_DSA_KEY_BLOB_V2. |
|
Exporte una criptografía de curva elíptica (ECC) clave privada. El búfer pbOutput recibe una estructura BCRYPT_ECCKEY_BLOB inmediatamente seguida de los datos de clave. |
|
Exporte una clave pública ECC. El búfer pbOutput recibe una estructura BCRYPT_ECCKEY_BLOB inmediatamente seguida de los datos de clave. |
|
Exporte una clave simétrica a un BLOB de datos. El búfer pbOutput recibe una estructura BCRYPT_KEY_DATA_BLOB_HEADER inmediatamente seguida del BLOB de clave. |
|
Exporte una clave simétrica en un formato específico de un único proveedor de servicios criptográficos (CSP). Los BLOB opacos no se pueden transferir y deben importarse mediante el mismo CSP que generó el BLOB. Los BLOB opacos solo están diseñados para usarse para la transferencia entre procesos de claves y no son adecuados para conservarse y leer entre versiones de un proveedor. |
|
Exporte una clave pública genérica de cualquier tipo. El tipo de clave de este BLOB viene determinado por el miembro Magic de la estructura BCRYPT_KEY_BLOB. |
|
Exporte una clave privada genérica de cualquier tipo. La clave privada no contiene necesariamente la clave pública. El tipo de clave de este BLOB viene determinado por el miembro Magic de la estructura BCRYPT_KEY_BLOB. |
|
Exporte un par de claves pública y privada RSA completa. El búfer pbOutput recibe una estructura BCRYPT_RSAKEY_BLOB inmediatamente seguida de los datos de clave. Este BLOB incluirá material de clave adicional en comparación con el tipo de BCRYPT_RSAPRIVATE_BLOB. |
|
Exporte un par de claves pública y privada RSA. El búfer pbOutput recibe una estructura BCRYPT_RSAKEY_BLOB inmediatamente seguida de los datos de clave. |
|
Exporte una clave pública RSA. El búfer pbOutput recibe una estructura BCRYPT_RSAKEY_BLOB inmediatamente seguida de los datos de clave. |
|
Exporte un blo b de clave privada de la versión 3 heredada de |
|
Exporte una Diffie-Hellman blo b de clave pública heredada de la versión 3 que contiene una clave pública de Diffie-Hellman que se puede importar mediante CryptoAPI. |
|
Exporte un par de claves públicas y privadas de DSA en un formulario que se pueda importar mediante CryptoAPI. |
|
Exporte una clave pública DSA en un formulario que se pueda importar mediante CryptoAPI. |
|
Exporte una clave privada de DSA versión 2 en un formulario que se pueda importar mediante CryptoAPI. |
|
Exporte un par de claves pública y privada RSA en un formulario que se pueda importar mediante CryptoAPI. |
|
Exporte una clave pública RSA en un formulario que se pueda importar mediante CryptoAPI. |
[out] pbOutput
Dirección de un búfer que recibe la clave BLOB. El parámetro cbOutput contiene el tamaño de este búfer. Si este parámetro es
[in] cbOutput
Contiene el tamaño, en bytes, del búfer de pbOutput.
[out] pcbResult
Puntero a un
[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 tamaño especificado por el parámetro cbOutput no es lo suficientemente grande como para contener el texto cifrado. |
|
El identificador de clave del parámetro hKey no es válido. |
|
Uno o varios parámetros no son válidos. |
|
El proveedor no admite el tipo DE BLOB especificado. |
Observaciones
En función de los modos de procesador que admita un proveedor, se puede llamar a BCryptExportKey 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 IRQL actual es
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 |