Поделиться через


Функция CryptMsgCountersignEncoded (wincrypt.h)

Функция CryptMsgCountersignEncoded задает существующую подпись сообщения PKCS #7. Создается буфер pbCountersignatureBYTE является созданным в кодировке PKCS #7 в кодировке SignerInfo, который можно использовать в качестве неуверенного атрибута countersignature сообщения PKCS #9, подписанного или подписанного и конвертированного.

Синтаксис

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.

Возвращаемый код Описание
CRYPT_E_OID_FORMAT
Идентификатор объекта плохо отформатирован.
E_INVALIDARG
Один или несколько аргументов недопустимы.
E_OUTOFMEMORY
Не хватает памяти.
 

Распространенные ошибки могут быть возвращены из одной из следующих функций:

Если функция завершается ошибкой, GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса нотации одного (ASN.1). Дополнительные сведения об этих ошибках см. в кодировке и декодировании возвращаемых значений ASN.1.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка wincrypt.h
библиотеки Crypt32.lib
DLL Crypt32.dll

См. также

CryptMsgCountersign

CryptMsgVerifyCountersignatureEncoded

функции сообщений низкого уровня

упрощенные функции сообщений