Função CryptEncryptMessage (wincrypt.h)
A função CryptEncryptMessagecriptografa e codifica uma mensagem.
Sintaxe
BOOL CryptEncryptMessage(
[in] PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
[in] DWORD cRecipientCert,
[in] PCCERT_CONTEXT [] rgpRecipientCert,
[in] const BYTE *pbToBeEncrypted,
[in] DWORD cbToBeEncrypted,
[out] BYTE *pbEncryptedBlob,
[in, out] DWORD *pcbEncryptedBlob
);
Parâmetros
[in] pEncryptPara
Um ponteiro para uma estrutura CRYPT_ENCRYPT_MESSAGE_PARA que contém os parâmetros de criptografia.
A função CryptEncryptMessage não dá suporte a OIDs SHA2, szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF e szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF.
[in] cRecipientCert
Número de elementos na matriz rgpRecipientCert .
[in] rgpRecipientCert
Matriz de ponteiros para CERT_CONTEXT estruturas que contêm os certificados dos destinatários pretendidos da mensagem.
[in] pbToBeEncrypted
Um ponteiro para um buffer que contém a mensagem que deve ser criptografada.
[in] cbToBeEncrypted
O tamanho, em bytes, da mensagem que deve ser criptografada.
[out] pbEncryptedBlob
Um ponteiro para BLOB que contém um buffer que recebe a mensagem criptografada e codificada.
Para definir o tamanho dessas informações para fins de alocação de memória, esse parâmetro pode ser NULL. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.
[in, out] pcbEncryptedBlob
Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro pbEncryptedBlob . Quando a função retorna, essa variável contém o tamanho, em bytes, da mensagem criptografada e codificada copiada para pbEncryptedBlob.
Retornar valor
Se a função for bem-sucedida, a função retornará diferente de zero (TRUE).
Se a função falhar, ela retornará zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.
Código de retorno | Descrição |
---|---|
|
Se o buffer especificado pelo parâmetro pbEncryptedBlob 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 pcbEncryptedBlob. |
|
O tipo de codificação de mensagem não é válido. Atualmente, há suporte apenas para PKCS_7_ASN_ENCODING. O cbSize em *pEncryptPara não é válido. |
Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação ASN.1 ( Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Valores retornados de codificação/decodificação asn.1.
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 |