Compartilhar via


Função NCryptUnprotectSecret (ncryptprotect.h)

A função NCryptUnprotectSecret descriptografa dados para um descritor de proteção especificado. Chame NCryptProtectSecret para criptografar os dados.

Sintaxe

SECURITY_STATUS NCryptUnprotectSecret(
  [out, optional] NCRYPT_DESCRIPTOR_HANDLE *phDescriptor,
  [in]            DWORD                    dwFlags,
  [in]            const BYTE               *pbProtectedBlob,
                  ULONG                    cbProtectedBlob,
  [in, optional]  const NCRYPT_ALLOC_PARA  *pMemPara,
  [in, optional]  HWND                     hWnd,
  [out]           BYTE                     **ppbData,
  [out]           ULONG                    *pcbData
);

Parâmetros

[out, optional] phDescriptor

Ponteiro para o identificador do descritor de proteção.

[in] dwFlags

O sinalizador pode ser zero ou um OR bit a bit dos valores a seguir.

Valor Significado
NCRYPT_SILENT_FLAG
Solicita que o provedor de serviços de chave não exiba uma interface do usuário.
NCRYPT_UNPROTECT_NO_DECRYPT
Decodifica apenas o cabeçalho do blob de dados protegido. Nenhuma descriptografia real ocorre.

[in] pbProtectedBlob

Ponteiro para uma matriz de bytes que contém os dados a serem descriptografado.

cbProtectedBlob

O número de bytes na matriz apontada pelo parâmetro pbProtectedBlob .

[in, optional] pMemPara

Ponteiro para uma estrutura NCRYPT_ALLOC_PARA que você pode usar para especificar funções de gerenciamento de memória personalizadas. Se você definir esse argumento como NULL, a função LocalAlloc será usada internamente para alocar memória e seu aplicativo deverá chamar LocalFree para liberar a memória apontada pelo parâmetro ppbData .

[in, optional] hWnd

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

[out] ppbData

Endereço de uma variável que recebe um ponteiro para os dados descriptografados.

[out] pcbData

Ponteiro para uma variável ULONG que contém o tamanho, em bytes, dos dados descriptografados apontados pela variável ppbData .

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 só pode conter NCRYPT_SILENT_FLAG ou NCRYPT_UNPROTECT_NO_DECRYPT.
NTE_INVALID_PARAMETER
Os parâmetros pbProtectedBlob, ppbData e pcbData não podem ser NULL.

O parâmetro cbData não pode ser menor que um.

Comentários

Use a função NCryptUnprotectSecret para descriptografar chaves, material de chave e senhas. Use as funções NCryptStreamOpenToUnprotect e NCryptStreamUpdate para descriptografar mensagens maiores.

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

NCryptProtectSecret