Função CryptSignAndEncryptMessage (wincrypt.h)
A função CryptSignAndEncryptMessage cria um hash do conteúdo especificado, assina o hash, criptografa o conteúdo, faz hashes do conteúdo criptografado e do hash assinado e codifica o conteúdo criptografado e o hash assinado. O resultado é o mesmo que se o hash fosse assinado pela primeira vez e, em seguida, criptografado.
Sintaxe
BOOL CryptSignAndEncryptMessage(
[in] PCRYPT_SIGN_MESSAGE_PARA pSignPara,
[in] PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
[in] DWORD cRecipientCert,
[in] PCCERT_CONTEXT [] rgpRecipientCert,
[in] const BYTE *pbToBeSignedAndEncrypted,
[in] DWORD cbToBeSignedAndEncrypted,
[out] BYTE *pbSignedAndEncryptedBlob,
[in, out] DWORD *pcbSignedAndEncryptedBlob
);
Parâmetros
[in] pSignPara
Um ponteiro para uma estrutura CRYPT_SIGN_MESSAGE_PARA que contém os parâmetros de assinatura.
[in] pEncryptPara
Um ponteiro para uma estrutura CRYPT_ENCRYPT_MESSAGE_PARA que contém parâmetros de criptografia.
[in] cRecipientCert
Número de elementos de matriz em rgpRecipientCert.
[in] rgpRecipientCert
Matriz de ponteiros para estruturas de CERT_CONTEXT . Cada estrutura é o certificado de um destinatário pretendido da mensagem.
[in] pbToBeSignedAndEncrypted
Um ponteiro para um buffer que contém o conteúdo a ser assinado e criptografado.
[in] cbToBeSignedAndEncrypted
O tamanho, em bytes, do buffer pbToBeSignedAndEncrypted .
[out] pbSignedAndEncryptedBlob
Um ponteiro para um buffer para receber a mensagem criptografada e codificada.
Esse parâmetro pode ser NULL para definir o tamanho dessas informações para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.
[in, out] pcbSignedAndEncryptedBlob
Um ponteiro para DWORD especificando o tamanho, em bytes, do buffer apontado por pbSignedAndEncryptedBlob. Quando a função retorna, essa variável contém o tamanho, em bytes, da mensagem assinada e criptografada copiada para *pbSignedAndEncryptedBlob.
Retornar valor
Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).
Se a função falhar, o valor retornado será zero (FALSE).
Para obter informações de erro estendidas, chame GetLastError.
O exemplo a seguir lista o código de erro mais comumente retornado pela função GetLastError .
Código de retorno | Descrição |
---|---|
|
Se o buffer especificado pelo parâmetro pbSignedAndEncryptedBlob não for grande o suficiente para manter os dados retornados, a função definirá o código ERROR_MORE_DATA e armazenará o tamanho do buffer necessário, em bytes, na variável apontada por pcbSignedAndEncryptedBlob. |
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] |
Plataforma de Destino | Windows |
Cabeçalho | wincrypt.h |
Biblioteca | Crypt32.lib |
DLL | Crypt32.dll |