Compartilhar via


Função NCryptStreamOpenToUnprotect (ncryptprotect.h)

A função NCryptStreamOpenToUnprotect abre um objeto de fluxo que pode ser usado para descriptografar grandes quantidades de dados para o mesmo descritor de proteção usado para criptografia. Chame NCryptStreamUpdate para executar a descriptografia. Para descriptografar mensagens menores, como chaves e senhas, chame NCryptUnprotectSecret.

Sintaxe

SECURITY_STATUS NCryptStreamOpenToUnprotect(
  [in]           NCRYPT_PROTECT_STREAM_INFO *pStreamInfo,
                 DWORD                      dwFlags,
  [in, optional] HWND                       hWnd,
  [out]          NCRYPT_STREAM_HANDLE       *phStream
);

Parâmetros

[in] pStreamInfo

Ponteiro para uma estrutura NCRYPT_PROTECT_STREAM_INFO que contém o endereço de uma função de retorno de chamada definida pelo usuário para receber os dados descriptografados e um ponteiro para dados de contexto definidos pelo usuário.

dwFlags

Um sinalizador que especifica informações adicionais para o provedor de serviços de chave. Isso pode ser zero ou o valor a seguir.

Valor Significado
NCRYPT_SILENT_FLAG
Solicita que o provedor de serviços de chave não exiba uma interface do usuário.

[in, optional] hWnd

Manipule para a janela pai da interface do usuário, se houver, a ser exibida.

[out] phStream

Ponteiro para o identificador do fluxo descriptografado de dados.

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
ERROR_SUCCESS
A função foi bem-sucedida.
NTE_BAD_FLAGS
O parâmetro dwFlags deve conter zero (0) ou NCRYPT_SILENT_FLAG.
NTE_INVALID_PARAMETER
Os parâmetros phStream e pStreamInfo não podem ser NULL.

A função de retorno de chamada apontada pelo membro pfnStreamOutput da estrutura NCRYPT_PROTECT_STREAM_INFO apontada pelo parâmetro pStreamInfo não pode ser NULL.

NTE_NO_MEMORY
Não havia memória suficiente para alocar um fluxo de dados.

Comentários

A função NCryptStreamOpenToUnprotect cria um objeto de fluxo interno que pode ser usado para criptografar mensagens grandes. Você não pode usar o objeto diretamente. Em vez disso, você deve usar o identificador de objeto retornado por essa função.

Chame essa função antes de chamar a função NCryptStreamUpdate . Se você estiver criptografando um arquivo grande, use NCryptStreamUpdate em um loop que avança pelo bloco de arquivos por bloco, criptografando cada bloco conforme ele avança e notificando o retorno de chamada quando cada bloco for concluído. Para obter mais informações, consulte NCryptStreamUpdate.

A função NCryptStreamOpenToUnprotect recupera a cadeia de caracteres de regra do descritor de proteção não criptografada do cabeçalho de fluxo. A cadeia de caracteres de regra é colocada no cabeçalho pela função NCryptStreamOpenToUnprotect .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ncryptprotect.h
Biblioteca NCrypt.lib
DLL NCrypt.dll

Confira também

Funções DPAPI do CNG

NCRYPT_PROTECT_STREAM_INFO

NCryptStreamClose

NCryptStreamOpenToProtect

NCryptStreamUpdate