Compartilhar via


Função NCryptProtectSecret (ncryptprotect.h)

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

Sintaxe

SECURITY_STATUS NCryptProtectSecret(
  [in]           NCRYPT_DESCRIPTOR_HANDLE hDescriptor,
  [in]           DWORD                    dwFlags,
  [in]           const BYTE               *pbData,
  [in]           ULONG                    cbData,
  [in, optional] const NCRYPT_ALLOC_PARA  *pMemPara,
  [in, optional] HWND                     hWnd,
  [out]          BYTE                     **ppbProtectedBlob,
  [out]          ULONG                    *pcbProtectedBlob
);

Parâmetros

[in] hDescriptor

Identificador do objeto descritor de proteção. Crie o identificador chamando NCryptCreateProtectionDescriptor.

[in] dwFlags

O sinalizador 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] pbData

Ponteiro para a matriz de bytes a ser protegida.

[in] cbData

Número de bytes na matriz binária especificada pelo parâmetro pbData .

[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 ppbProtectedBlob .

[in, optional] hWnd

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

[out] ppbProtectedBlob

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

[out] pcbProtectedBlob

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

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_INVALID_PARAMETER
Os parâmetros pbData, ppbProtectedBlob e pcbProtectedBlob não podem ser NULL.

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

NTE_NO_MEMORY
Há memória insuficiente para alocar a chave de criptografia de conteúdo.
NTE_INVALID_HANDLE
O identificador especificado pelo parâmetro hDescriptor não é válido.

Comentários

Use a função NCryptProtectSecret para proteger chaves, material de chave e senhas. Use as funções NCryptStreamOpenToProtect e NCryptStreamUpdate para criptografar 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

NCryptCreateProtectionDescriptor

NCryptUnprotectSecret