Функция CryptMsgCountersignEncoded (wincrypt.h)
Функция CryptMsgCountersignEncoded подписывает существующую подпись сообщения PKCS #7. Создаваемый буфер BYTE pbCountersignature — это signerInfo в кодировке PKCS #7, который можно использовать в качестве атрибута Countersignature без проверки подлинности сообщения PKCS #9 signed-data или signed-and-enveloped-data.
Синтаксис
BOOL CryptMsgCountersignEncoded(
[in] DWORD dwEncodingType,
[in] PBYTE pbSignerInfo,
[in] DWORD cbSignerInfo,
[in] DWORD cCountersigners,
[in] PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
[out] PBYTE pbCountersignature,
[in, out] PDWORD pcbCountersignature
);
Параметры
[in] dwEncodingType
Указывает используемый тип кодирования. В настоящее время используются только X509_ASN_ENCODING и PKCS_7_ASN_ENCODING; однако в будущем могут быть добавлены дополнительные типы кодирования. Для любого из текущих типов кодирования используйте:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pbSignerInfo
Указатель на закодированный объект SignerInfo, который должен быть подсвечен.
[in] cbSignerInfo
Количество закодированных данных SignerInfo в байтах.
[in] cCountersigners
Число счетчиков в массиве rgCountersigners .
[in] rgCountersigners
Массив структур CMSG_SIGNER_ENCODE_INFO счетчиков.
[out] pbCountersignature
Указатель на буфер для получения закодированного атрибута контригнатуры PKCS #9.
На входных данных этот параметр может иметь значение NULL , чтобы задать размер этих сведений для целей выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbCountersignature
Указатель на переменную, указывающую размер (в байтах) буфера, на который указывает параметр pbCountersignature . При возврате функции переменная, на которую указывает параметр pcbCountersignature , содержит количество байтов, хранящихся в буфере.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение не равно нулю (TRUE).
Если функция завершается ошибкой, возвращаемое значение равно нулю (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
В следующей таблице перечислены коды ошибок, наиболее часто возвращаемые функцией GetLastError .
Код возврата | Описание |
---|---|
|
Идентификатор объекта имеет неправильный формат. |
|
Один или несколько аргументов являются недопустимыми. |
|
Не хватает памяти. |
Распространенные ошибки могут быть возвращены одной из следующих функций:
- CryptCreateHash
- CryptHashData
- CryptGetHashParam
- CryptSignHash
- CryptMsgOpenToEncode
- CryptMsgUpdate
- CryptMsgControl
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |
См. также раздел
CryptMsgVerifyCountersignatureEncoded
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по