Compartilhar via


CryptProtectData

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Esta função executa criptografia sobre os dados em uma estrutura BLOB (Cryptography). Normalmente, somente um usuário com credenciais de logon mesmo como o criptógrafo pode descriptografar os dados. Além disso, a criptografia e descriptografia geralmente devem ser feitos no mesmo computador. Para obter informações sobre exceções, consulte a seção " Comentários ".

Observação

Um aplicativo normal pode chamar o CryptProtectData função.O chamar falhará somente se CRYPTPROTECT_SYSTEM for especificada para o dwFlags parâmetro.

Syntax

BOOL WINAPI CryptProtectData(
  DATA_BLOB* pDataIn, 
  LPCWSTR szDataDescr, 
  DATA_BLOB* pOptionalEntropy, 
  PVOID pvReserved, 
  CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, 
  DWORD dwFlags, 
  DATA_BLOB* pDataOut 
);

Parameters

  • pDataIn
    [no] Ponteiro para um DATA_BLOB estrutura contendo o texto no criptografado sejam criptografados.
  • szDataDescr
    [no] Seqüência de caracteres com uma descrição legível dos dados sejam criptografados. Esta seqüência de caracteres descrição está incluído com o dados criptografados.
  • pOptionalEntropy
    [no] Ponteiro para uma objeto binário grande (blob) contendo uma senha ou outra entropia adicional usado para criptografar os dados. O blob usado em fase a criptografia também deve ser usado na fase de descriptografia. Este parâmetro pode ser definido como NULL para nenhum entropia adicional.
  • pvReserved
    [no] Reservado para uso futuro e deve ser definida como NULL.
  • pPromptStruct
    [no] Deve ser definido como NULL porque o CRYPTPROTECT_PROMPTSTRUCT estrutura não é usada.
  • dwFlags
    [no] Máscara de bits de sinalizadores. A seguinte tabela mostra os valores sinalizador que são definidos.

    Valor Descrição

    CRYPTPROTECT_LOCAL_MACHINE

    Quando esse sinalizador é definido, ele associa os dados criptografados com o atual computador INSTEAD OF com um individual usuário. Qualquer usuário sobre o computador no qual CryptProtectData é chamado pode usar a função CryptUnprotectData para descriptografar os dados.

    CRYPTPROTECT_NO_RECOVERY

    Este sinalizador não com suporte e é ignorada quando especificado. Nenhum mecanismo de recuperação é com suporte.

    CRYPTPROTECT_SYSTEM

    Quando este sinalizador estiver definido, somente um processo com privilégios pode criptografar os dados.

    CRYPTPROTECT_UI_FORBIDDEN

    Este sinalizador é usado para remoto situações onde apresentar uma interface usuário (interface do usuário) não é uma opção. Quando este sinalizador está definido e o interface do usuário é especificado para a proteger ou desproteger operação, o operação falhar e a função GetLastError retorna a codificar ERROR_PASSWORD_RESTRICTION.

  • pDataOut
    [out] Ponteiro para um DATA_BLOB estrutura que recebe o dados criptografados. Se a pasta pbData membro de DATA_BLOB é definido como NULL, a função aloca memória para o dados criptografados. Se não for igual a pbData NULL, a função usa a reserva especificada na cbData do DATA_BLOB. Quando você desejar a função para usar a reserva especificada, você deve verificar se a estrutura é inicializada. Passando não inicializado DATA_BLOB pode causar resultados inesperados. Quando terminar de utilizar o DATA_BLOB estrutura, livre seu pbData membro por chamado a função LocalFree.

Return Value

Se a função for bem-sucedido, o valor de retorno é TRUE. Se a função falhar, o valor de retorno é FALSE. Para informações de erro estendidas, chamar o GetLastError função.

Remarks

Somente um usuário com credenciais logon compatível do criptógrafo podem descriptografar os dados. Além disso, descriptografia geralmente só pode ser feita sobre o computador onde os dados foram criptografados.

Se um aplicativo execução como um driver ou serviço chamadas CryptProtectData início do processo de inicializar, antes que um usuário tiver sido estabelecido, a função será implicitamente adicionar o sinalizador CRYPTPROTECT_LOCAL_MACHINE.

Observação

Se credenciais de logon são perdidas ou esquecidas, os dados é geralmente irreparável.No entanto, se a dwFlags parâmetro in a CryptProtectData função é definida como CRYPTPROTECT_LOCAL_MACHINE com ou sem entropia adicional especificado na pOptionalEntropy parâmetro, qualquer usuário sobre o mesmo computador onde os dados foram criptografados pode recuperar os dados.

A função cria uma chave sessão para executar a criptografia. Chave de sessão é derivado novamente quando os dados deve ser descriptografado.

A função também adiciona uma codificar autenticação mensagem (Mac), que é um de chave verificar integridade, para o dados criptografados para se proteger contra violação dados.

Em algumas circunstâncias, serviço de criptografia Microsoft (provedores) podem não permitir criptografia quando usado em França, na qual maiúsculas e minúsculas esta função falha com o código de erro NTE_PERM.

Você pode armazenar as chaves mestre ou criptografia usadas por CryptProtectData Em um arquivo na pasta do Windows Registro de sistema ou assim que certas implementações persistente Registro irá reter as chaves criptografia após a perda e retomar de energia. **

Requirements

Header wincrypt.h
Library coredll.lib
Windows Embedded CE Windows CE .NET 4.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

CryptUnprotectData
BLOB (Cryptography)

Concepts

Protected Store API

Other Resources