Função NCryptDecrypt (ncrypt.h)
A função NCryptDecrypt descriptografa um bloco de dados criptografados.
Sintaxe
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
O identificador da chave a ser usada para descriptografar os dados.
[in] pbInput
O endereço de um buffer que contém os dados a serem descriptografados. O parâmetro cbInput contém o tamanho dos dados a serem descriptografado. Para obter mais informações, consulte Comentários.
[in] cbInput
O número de bytes no buffer pbInput a ser descriptografado.
[in, optional] pPaddingInfo
Um ponteiro para uma estrutura que contém informações de preenchimento. O tipo real de estrutura para o qual esse parâmetro aponta depende do valor do parâmetro dwFlags . Esse parâmetro só é usado com chaves assimétricas e deve ser NULL caso contrário.
[out] pbOutput
O endereço de um buffer que receberá os dados descriptografados produzidos por essa função. O parâmetro cbOutput contém o tamanho desse buffer. Para obter mais informações, consulte Comentários.
Se esse parâmetro for NULL, essa função calculará o tamanho necessário para os dados descriptografados e retornará o tamanho no local apontado pelo parâmetro pcbResult .
[in] cbOutput
O tamanho, em bytes, do buffer pbOutput . Esse parâmetro será ignorado se o parâmetro pbOutput for NULL.
[out] pcbResult
Um ponteiro para uma variável DWORD que recebe o número de bytes copiados para o buffer pbOutput . Se pbOutput for NULL, isso receberá o tamanho, em bytes, necessário para os dados descriptografados.
[in] dwFlags
Sinalizadores que modificam o comportamento da função. O conjunto permitido de sinalizadores depende do tipo de chave especificado pelo parâmetro hKey .
Se a chave for uma chave assimétrica, esse poderá ser um dos valores a seguir.
Valor | Significado |
---|---|
|
Nenhum preenchimento foi usado quando os dados foram criptografados. O parâmetro pPaddingInfo não é usado. |
|
O esquema OAEP (Preenchimento de Criptografia Assimétrica Ideal) foi usado quando os dados foram criptografados. O parâmetro pPaddingInfo é um ponteiro para uma estrutura BCRYPT_OAEP_PADDING_INFO . |
|
Os dados foram preenchidos com um número aleatório para arredondar o tamanho do bloco quando os dados foram criptografados. O parâmetro pPaddingInfo não é usado. |
O valor a seguir pode ser usado para qualquer chave.
Retornar valor
Retorna um código status que indica o êxito ou a falha da função.
Os códigos de retorno possíveis incluem, mas não se limitam a, o seguinte.
Código de retorno | Descrição |
---|---|
|
A função foi bem-sucedida. |
|
O parâmetro dwFlags contém um valor que não é válido. |
|
O tamanho especificado pelo parâmetro cbOutput não é grande o suficiente para manter os dados descriptografados. |
|
O parâmetro hKey não é válido. |
|
Um ou mais dos parâmetros não são válidos. |
|
A chave identificada pelo parâmetro hKey não pode ser usada para descriptografia. |
Comentários
Os parâmetros pbInput e pbOutput podem apontar para o mesmo buffer. Nesse caso, essa função executará a descriptografia em vigor.
Um serviço não deve chamar essa função de sua função StartService. Se um serviço chamar essa função de sua função StartService, um deadlock poderá ocorrer e o serviço poderá parar de responder.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | ncrypt.h |
Biblioteca | Ncrypt.lib |
DLL | Ncrypt.dll |