Функция CryptMsgSignCTL (wincrypt.h)
Функция CryptMsgSignCTL создает подписанное сообщение, содержащее закодированный CTL.
Синтаксис
BOOL CryptMsgSignCTL(
[in] DWORD dwMsgEncodingType,
[in] BYTE *pbCtlContent,
[in] DWORD cbCtlContent,
[in] PCMSG_SIGNED_ENCODE_INFO pSignInfo,
[in] DWORD dwFlags,
[out] BYTE *pbEncoded,
[in, out] DWORD *pcbEncoded
);
Параметры
[in] dwMsgEncodingType
Указывает используемый тип кодирования. Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
В настоящее время определены следующие типы кодирования:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pbCtlContent
Закодированный CTL_INFO , который может быть членом структуры CTL_CONTEXT или может быть создан с помощью функции CryptEncodeObject .
[in] cbCtlContent
Размер (в байтах) содержимого, на который указывает pbCtlContent.
[in] pSignInfo
Указатель на структуру CMSG_SIGNED_ENCODE_INFO , содержащую массив CMSG_SIGNER_ENCODE_INFO структур.
Сообщение может быть закодировано без подписывателей, если для элемента cbSize структуры задан размер структуры, а для всех остальных элементов задано значение 0.
[in] dwFlags
Если определен CMS_PKCS7, можно задать значение CMSG_CMS_ENCAPSULATED_CTL_FLAG для кодирования сообщения SignedData, совместимого с CMS версии 3.
[out] pbEncoded
Указатель на буфер для получения закодированного сообщения.
Этот параметр может иметь значение NULL , чтобы получить размер этих сведений для целей выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbEncoded
Указатель на DWORD , указывающий размер буфера pbEncoded (в байтах). При возврате функции значение DWORD содержит количество байтов, хранящихся или хранимых в буфере.
Возвращаемое значение
Если функция выполнена успешно, возвращается ненулевое значение (TRUE).
Если функция завершается сбоем, возвращаемое значение равно нулю (FALSE). Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError. Эта функция может возвращать ошибки, распространяемые из вызовов в CryptMsgOpenToEncode и CryptMsgUpdate.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |