Compartilhar via


CryptUnprotectData

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função descriptografa e verifica a integridade dos dados em uma estrutura BLOB (Cryptography). Geralmente, apenas um usuário com credenciais de logon mesmo como o criptógrafo pode descriptografar os dados. Além disso, a criptografia e descriptografia devem ser feitos no mesmo computador.

Observação

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

Syntax

BOOL WINAPI CryptUnprotectData(
  DATA_BLOB* pDataIn, 
  LPWSTR* ppszDataDescr, 
  DATA_BLOB* pOptionalEntropy, 
  PVOID pvReserved, 
  CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, 
  DWORD dwFlags, 
  DATA_BLOB* pDataOut 
);

Parameters

  • pDataIn
    [no] Ponteiro para uma estrutura BLOB (Cryptography) que detém a dados criptografados. O DATA_BLOB da estrutura cbData membro tem o comprimento das pbData seqüência de byte do membro que contém o texto a ser criptografada.
  • ppszDataDescr
    [out] Opcional. Ponteiro para uma descrição legível seqüência de caracteres da dados criptografados.
  • pOptionalEntropy
    [no] Opcional. Ponteiro para um blob contendo uma senha ou outra entropia adicional usada quando os dados foram criptografados. Este parâmetro é opcional e pode ser definido como NULL; No entanto, se um opcional entropia blob foi usado em fase de criptografia, que mesmo blob deve ser usada para a fase descriptografia.
  • 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] Deve coincidir com o valor especificado durante o processo criptografia. Se o sinalizador for definido, o processo de chamada deve ser privilegiado. 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 o CryptUnprotectData função 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 onde a função armazena os dados descriptografados. Membros cbData e pbData de pDataOut devem ser definidos como 0.

Return Value

Se a função for bem-sucedido, o valor de retorno é TRUE. Se a função falhar, o valor de retorno é FALSE.

Remarks

Para obter informações sobre exceções, consulte a seção " Comentários " para a função CryptProtectData.

O CryptProtectData função cria uma chave sessão quando os dados são criptografados. Essa chave é derivado novamente e usada para descriptografar os dados blob.

O hash codificar (Mac) autenticação mensagem adicionado à dados criptografados pode ser usado para determinar se a dados criptografados foi alterado de alguma forma. Qualquer violação faz o retorno de codificar o ERROR_INVALID_DATA.

O pbData membro do alocado DATA_BLOB estrutura e não-NULL ppszDataDescr parâmetro deve ser liberado usando a função LocalFree.

O dados criptografados contidos o blob é auto-descrevendo e inclui o tamanho necessário para descriptografar os dados. O campo tamanho de blob de dados é usado somente para verificar um limites básico; Para verificar a limite inferior e verifique se o tamanho é o mínimo necessário. Isso significa que enquanto o campo tamanho pode ser definido para ser maior que o real tamanho dos dados que foi criptografados, somente o real dados blob será descriptografado. Nenhum erro irá resultar se o campo tamanho é definido para ser maior do que o real tamanho de blob de dados.

Você pode armazenar as chaves mestre ou criptografia usadas por CryptUnprotectData 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

CryptProtectData
BLOB (Cryptography)

Concepts

Protected Store API

Other Resources

LocalFree