Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A função DecryptMessage (Kerberos) descriptografa uma mensagem. Alguns pacotes não criptografam e descriptografam mensagens, mas sim executam e verificam um hash de integridade.
Observação
EncryptMessage (Kerberos) e DecryptMessage (Kerberos) podem ser chamados ao mesmo tempo de dois threads diferentes em um único contexto de SSPI ( interface de provedor de suporte de segurança ) se um thread estiver criptografando e o outro estiver descriptografando. Se mais de um thread estiver sendo criptografado ou mais de um thread estiver descriptografando, cada thread deverá obter um contexto exclusivo.
Sintaxe
SECURITY_STATUS SEC_Entry DecryptMessage(
_In_ PCtxtHandle phContext,
_Inout_ PSecBufferDesc pMessage,
_In_ ULONG MessageSeqNo,
_Out_ PULONG pfQOP
);
Parâmetros
phContext [em]
Um identificador para o contexto de segurança a ser usado para descriptografar a mensagem.
pMessage [entrada, saída]
Um ponteiro para uma estrutura SecBufferDesc . Na entrada, a estrutura faz referência a uma ou mais estruturas do SecBuffer que podem ser do tipo SECBUFFER_DATA. O buffer contém a mensagem criptografada. A mensagem criptografada é descriptografada no local, substituindo o conteúdo original de seu buffer.
MessageSeqNo [em]
O número de sequência esperado pelo aplicativo de transporte, se houver. Se o aplicativo de transporte não mantiver números de sequência, esse parâmetro deverá ser definido como zero.
pfQOP [fora]
Um ponteiro para uma variável do tipo ULONG que recebe sinalizadores específicos do pacote que indicam a qualidade da proteção.
Esse parâmetro pode ser o sinalizador a seguir.
| Valor | Significado |
|---|---|
| SECQOP_WRAP_NO_ENCRYPT | ele não foi criptografado, mas um cabeçalho ou trailer foi produzido. |
Observação
KERB_WRAP_NO_ENCRYPT tem o mesmo valor e o mesmo significado.
Valor de retorno
Se a função verificar se a mensagem foi recebida na sequência correta, a função retornará SEC_E_OK.
Se a função não conseguir descriptografar a mensagem, ela retornará um dos seguintes códigos de erro.
| Código de retorno | Descrição |
|---|---|
| SEC_E_INCOMPLETE_MESSAGE | Os dados no buffer de entrada estão incompletos. O aplicativo precisa ler mais dados do servidor e chamar DecryptMessage (Kerberos) novamente. |
| SEC_E_OUT_OF_SEQUENCE | A mensagem não foi recebida na sequência correta. |
Observações
Às vezes, um aplicativo lê dados da parte remota, tenta descriptografá-los usando DecryptMessage (Kerberos) e descobre que DecryptMessage (Kerberos) foi bem-sucedido, mas os buffers de saída estão vazios. Esse é um comportamento normal e os aplicativos devem ser capazes de lidar com ele.
Para obter informações sobre como interoperar com GSSAPI, consulte Interoperabilidade de SSPI/Kerberos com GSSAPI.
Windows XP: Essa função também era conhecida como UnsealMessage. Os aplicativos agora devem usar apenas DecryptMessage (Kerberos ).
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
| Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
| Cabeçalho | Sspi.h (inclui Security.h) |
| Biblioteca | Secur32.lib |
| DLL | Secur32.dll |
Consulte também
- Funções SSPI
- EncryptMessage (Kerberos)
- do SecBuffer
- SecBufferDesc