Функция CryptMsgOpenToEncode открывает криптографическое сообщение для закодирования и возвращает дескриптор открытого сообщения. Сообщение остается открытым до вызова функции CryptMsgClose.
Для устранения конфликта с определением CMSG_DATA в системном заголовочном файле socket.h на Unix-системах, тип сообщения CMSG_DATA переименован в CMSG_CAPILITE_DATA. Если socket.h не используется, то можно определить CMSG_DATA как:
#define CMSG_DATA CMSG_CAPILITE_DATA
WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToEncode( IN DWORD dwMsgEncodingType, IN DWORD dwFlags, IN DWORD dwMsgType, IN void const * pvMsgEncodeInfo, IN OPTIONAL LPSTR pszInnerContentObjID, IN OPTIONAL PCMSG_STREAM_INFO pStreamInfo );
При открытии криптографического сообщения будут добавлены дополнительные подписанные атрибуты (см. Особенности создания подписанных CMS сообщений в @cspname ). На добавление атрибутов влияет параметр dwFlags. Параметр dwFlags может содержать дополнительные флаги, определённые в файле WinCryptEx.h:
Флаг | Описание |
---|---|
CPCMSG_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCMSG_CADES_STRICT. |
CPCMSG_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCMSG_CADES_DISABLE. |
CPCMSG_CADES_DISABLE_CERT_SEARCH | Отключает поиск сертификата подписывающего в хранилищах "Личные" ("My") текущего пользователя и локального компьютера. |
AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.
Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgClose, CryptMsgUpdate, CryptMsgGetParam, CryptMsgOpenToDecode, CryptMsgOpenToEncode в MS CryptoAPI 2.0