Функция CryptEncryptMessage (wincrypt.h)
Функция CryptEncryptMessageшифрует и кодирует сообщение.
Синтаксис
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
);
Параметры
[in] pEncryptPara
Указатель на структуру CRYPT_ENCRYPT_MESSAGE_PARA , содержащую параметры шифрования.
Функция CryptEncryptMessage не поддерживает OID SHA2, szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF и szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF.
[in] cRecipientCert
Количество элементов в массиве rgpRecipientCert .
[in] rgpRecipientCert
Массив указателей на CERT_CONTEXT структуры, содержащие сертификаты предполагаемых получателей сообщения.
[in] pbToBeEncrypted
Указатель на буфер, содержащий зашифрованное сообщение.
[in] cbToBeEncrypted
Размер зашифрованного сообщения (в байтах).
[out] pbEncryptedBlob
Указатель на большой двоичный объект , содержащий буфер, который получает зашифрованное и закодированное сообщение.
Чтобы задать размер этих сведений для целей выделения памяти, этот параметр может иметь значение NULL. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbEncryptedBlob
Указатель на DWORD , указывающий размер (в байтах) буфера, на который указывает параметр pbEncryptedBlob . При возврате функции эта переменная содержит размер зашифрованного и закодированного сообщения в байтах, скопированного в pbEncryptedBlob.
Возвращаемое значение
Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).
Если функция завершается сбоем, она возвращает ноль (FALSE). Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.
Код возврата | Описание |
---|---|
|
Если буфер, заданный параметром pbEncryptedBlob , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbEncryptedBlob. |
|
Недопустимый тип кодирования сообщений . В настоящее время поддерживается только PKCS_7_ASN_ENCODING. Недопустимый параметр cbSize в *pEncryptPara. |
В случае сбоя функции GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |