Función BCryptImportKey (bcrypt.h)
La función
Sintaxis
NTSTATUS BCryptImportKey(
[in] BCRYPT_ALG_HANDLE hAlgorithm,
[in, optional] BCRYPT_KEY_HANDLE hImportKey,
[in] LPCWSTR pszBlobType,
[out] BCRYPT_KEY_HANDLE *phKey,
[out, optional] PUCHAR pbKeyObject,
[in] ULONG cbKeyObject,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[in] ULONG dwFlags
);
Parámetros
[in] hAlgorithm
Identificador del proveedor de algoritmos para importar la clave. Este identificador se obtiene llamando a la función BCryptOpenAlgorithmProvider.
[in, optional] hImportKey
Identificador de la clave de cifrado de claves necesaria para desencapsular el BLOB de clave en el parámetro pbInput de
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 encuentra en el pbInput búfer. Puede ser uno de los siguientes valores.
Valor | Significado |
---|---|
|
Importe una clave simétrica desde un BLOB de clave encapsulada con clave AES. El parámetro hImportKey Windows Server 2008 y Windows Vista: no se admite este tipo de BLOB . |
|
Importe una clave simétrica desde un BLOB de datos. El parámetro pbInput es un puntero a una estructura BCRYPT_KEY_DATA_BLOB_HEADER inmediatamente seguida del BLOB de clave. |
|
Importe un BLOB de clave simétrica en un formato específico de un único 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 leerse en entre versiones de un proveedor. |
[out] phKey
Puntero a un BCRYPT_KEY_HANDLE que recibe el identificador de la clave importada. Este identificador se usa en funciones posteriores que requieren una clave, como BCryptEncrypt. Este identificador debe liberarse cuando ya no sea necesario pasandolo a la función BCryptDestroyKey
[out, optional] pbKeyObject
Puntero a un búfer que recibe el objeto de clave importado. El parámetro cbKeyObject
Esta memoria solo se puede liberar después de destruir el identificador de clave phKey.
[in] cbKeyObject
Tamaño, en bytes, del búfer de pbKeyObject.
[in] pbInput
Dirección de un búfer que contiene la clave BLOB que se va a importar. El parámetro cbInput contiene el tamaño de este búfer. El parámetro pszBlobType especifica el tipo de blob de clave que contiene este búfer.
[in] cbInput
Tamaño, en bytes, del búfer de pbInput.
[in] dwFlags
Conjunto de marcas que modifican el comportamiento de esta función. Actualmente no se definen marcas, por lo que este parámetro debe ser cero.
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 del objeto de clave especificado por el parámetro cbKeyObject no es lo suficientemente grande como para contener el objeto de clave. |
|
El identificador de algoritmo del parámetro hAlgorithm no es válido. |
|
Uno o varios parámetros no son válidos. |
|
El proveedor de algoritmos especificado por el parámetro hAlgorithm no admite el tipo BLOB especificado por el parámetro pszBlobType. |
Observaciones
En función de los modos de procesador que admita un proveedor, se puede llamar a BCryptImportKey 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
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 |