Развернуть все
Свернуть все

Структура CADES_ENCODE_INFO

Структура, задаваемая в качестве параметра функции CadesMsgOpenToEncode.

Синтаксис

C++
 typedef struct _CADES_ENCODE_INFO {
   DWORD dwSize;
   PCMSG_SIGNED_ENCODE_INFO pSignedEncodeInfo;
   DWORD cSignerCerts;
   PCCERT_CONTEXT *rgSignerCerts;
   DWORD cHashAlgorithms;
   LPCSTR *rgHashAlgorithms;
 } CADES_ENCODE_INFO,
   *PCADES_ENCODE_INFO;

Параметры

dwSize

Размер структуры в байтах.

pSignedEncodeInfo

Указатель на структуру CMSG_SIGNED_ENCODE_INFO (см. документацию к Crypto API). При работе с сертификатами с алгоритмом ключа ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-94 поле HashAlgorithm.pszObjId в структуре CMSG_SIGNER_ENCODE_INFO должно иметь значение szOID_CP_GOST_R3411 (алгоритм хэширования ГОСТ Р 34.11-94). Определение szOID_CP_GOST_R3411 содержится в файле wincryptex.h.

cSignerCerts

Размер массива сертификатов rgSignerCerts, используемых для подписи (может быть равен 0). Если это поле ненулевое, то оно должно быть равно количеству подписей, указанному в pSignedEncodeInfo->cSigners, и поле rgSignerCerts должно быть ненулевым.

rgSignerCerts

Массив контекстов сертификатов, используемых для подписи (может быть равен NULL). Если поле равно NULL, то сертификаты подписей ищутся среди сертификатов, вкладываемых в сообщение (pSignedEncodeInfo->rgCertEncoded), и в хранилищах текущего пользователя "My" (Личные) и "Addressbook" (Другие пользователи). Если поле не равно NULL, сертификаты должны быть расположены в порядке, соответствующем порядку подписей pSignedEncodeInfo->rgSigners.

cHashAlgorithms

Размер массива OID-ов алгоритмов хэширования для создания идентификаторов сертификатов подписи (может быть равно 0). Если это поле не нулевое, то оно должно быть равно количеству подписей, указанному в pSignedEncodeInfo->cSigners, и поле rgHashAlgorithms должно быть ненулевым.

rgHashAlgorithms

Массив OID-ов алгоритмов хэширования для идентификаторов сертификатов подписи (может быть равен NULL). Если поле равно NULL, то используется указанный в pSignedEncodeInfo->rgSigners[i].HashAlgorithm алгоритм хэширования данных для i-й подписи. Если поле не равно NULL, алгоритмы хэширования должны быть расположены в порядке, соответствующем порядку подписей pSignedEncodeInfo->rgSigners.

Требования

Заголовочный файл cades.h
Минимальная версия продукта 1.0

См. также