Структура, задаваемая в качестве параметра функции CadesMsgOpenToEncode.
Синтаксис
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 |