Função NCryptEncrypt (ncrypt.h)
A função NCryptEncrypt criptografa um bloco de dados.
Sintaxe
SECURITY_STATUS NCryptEncrypt(
[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 criptografar os dados.
[in] pbInput
O endereço de um buffer que contém os dados a serem criptografados. O parâmetro cbInput contém o tamanho dos dados a serem criptografados. Para obter mais informações, consulte Comentários.
[in] cbInput
O número de bytes no buffer pbInput a ser criptografado.
[in, optional] pPaddingInfo
Um ponteiro para uma estrutura que contém informações de preenchimento. O tipo real de estrutura a que 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 criptografados 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 criptografados 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 o texto cifrado.
[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 |
---|---|
|
Não use nenhum preenchimento. O parâmetro pPaddingInfo não é usado.
Se você especificar o NCRYPT_NO_PADDING_FLAG, a função NCryptEncrypt criptografará apenas os primeiros N bits, em que N é o comprimento da chave que foi passada como o parâmetro hKey . Todos os bits após os primeiros N bits são ignorados. |
|
Use o esquema OAEP (Preenchimento de Criptografia Assimétrica Ideal). O parâmetro pPaddingInfo é um ponteiro para uma estrutura BCRYPT_OAEP_PADDING_INFO . |
|
Os dados serão adicionados com um número aleatório para arredondar o tamanho do bloco. O parâmetro pPaddingInfo não é usado. |
|
Solicita que o KSP (provedor de serviços de chave) não exiba nenhuma interface do usuário. Se o provedor precisar exibir a interface do usuário para operar, a chamada falhará e o KSP deverá definir o código de erro NTE_SILENT_CONTEXT como o último erro. |
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. |
|
A chave identificada pelo parâmetro hKey não foi finalizada ou está incompleta. |
|
O tamanho especificado pelo parâmetro cbOutput não é grande o suficiente para manter os dados criptografados. |
|
O parâmetro hKey não é válido. |
|
Um ou mais dos parâmetros não são válidos. |
Comentários
Os parâmetros pbInput e pbOutput podem apontar para o mesmo buffer. Nesse caso, essa função executará a criptografia em vigor. É possível que o tamanho dos dados criptografados seja maior do que o tamanho dos dados não criptografados, portanto, o buffer deve ser grande o suficiente para manter os dados criptografados.
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 |