Función NCryptDecrypt (ncrypt.h)
La función NCryptDecrypt descifra un bloque de datos cifrados.
Sintaxis
SECURITY_STATUS NCryptDecrypt(
[in] NCRYPT_KEY_HANDLE hKey,
[in] PBYTE pbInput,
[in] DWORD cbInput,
[in, optional] VOID *pPaddingInfo,
[out] PBYTE pbOutput,
[in] DWORD cbOutput,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Parámetros
[in] hKey
Identificador de la clave que se va a usar para descifrar los datos.
[in] pbInput
Dirección de un búfer que contiene los datos que se van a descifrar. El parámetro cbInput contiene el tamaño de los datos que se van a descifrar. Para obtener más información, vea la sección Comentarios.
[in] cbInput
Número de bytes del búfer pbInput que se va a descifrar.
[in, optional] pPaddingInfo
Puntero a una estructura que contiene información de relleno. El tipo real de estructura a la que apunta este parámetro depende del valor del parámetro dwFlags . Este parámetro solo se usa con claves asimétricas y debe ser NULL de lo contrario.
[out] pbOutput
Dirección de un búfer que recibirá los datos descifrados generados por esta función. El parámetro cbOutput contiene el tamaño de este búfer. Para obtener más información, vea la sección Comentarios.
Si este parámetro es NULL, esta función calculará el tamaño necesario para los datos descifrados y devolverá el tamaño en la ubicación a la que apunta el parámetro pcbResult .
[in] cbOutput
Tamaño, en bytes, del búfer pbOutput . Este parámetro se omite si el parámetro pbOutput es NULL.
[out] pcbResult
Puntero a una variable DWORD que recibe el número de bytes copiados en el búfer pbOutput . Si pbOutput es NULL, recibe el tamaño, en bytes, necesario para los datos descifrados.
[in] dwFlags
Marcas que modifican el comportamiento de la función. El conjunto permitido de marcas depende del tipo de clave especificado por el parámetro hKey .
Si la clave es una clave asimétrica, puede ser uno de los siguientes valores.
Valor | Significado |
---|---|
|
No se usó relleno cuando se cifraron los datos. No se usa el parámetro pPaddingInfo . |
|
El esquema de relleno óptimo de cifrado asimétrico (OAEP) se usó cuando se cifraron los datos. El parámetro pPaddingInfo es un puntero a una estructura BCRYPT_OAEP_PADDING_INFO . |
|
Los datos se rellenaron con un número aleatorio para redondear el tamaño del bloque cuando se cifraron los datos. No se usa el parámetro pPaddingInfo . |
Se puede usar el siguiente valor para cualquier clave.
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. |
|
El tamaño especificado por el parámetro cbOutput no es lo suficientemente grande como para contener los datos descifrados. |
|
El parámetro hKey no es válido. |
|
Uno o más parámetros no son válidos. |
|
La clave identificada por el parámetro hKey no se puede usar para el descifrado. |
Comentarios
Los parámetros pbInput y pbOutput pueden apuntar al mismo búfer. En este caso, esta función realizará el descifrado en su lugar.
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 [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 |