Oleg83 Опубликовано 23 Января 2006 Жалоба Поделиться Опубликовано 23 Января 2006 Вопрос по проверке ЭЦП про помощи VipNet SDK:Мне необходимо получить информацию, наподобие той, что показывается привызове функции EXT_VerifyViewSignResult, только мне не нужно показыватьокно результатов проверки подписи, отсюда, я пользуюсь функциейEXT_VerifySign. Эта функция в pSignContext->pSignaturesResults возвращает "массив данных,соответствующих результатам проверки подписи (достоверность сертификата идостоверность подписи под данными)", но к сожалению, в документации неописан этот массив данных. Как я могу программно узнать:1. Действительна ли подпись2. Действителен ли сертификат3. Время подписиТо есть все данные, которые показываются в окне проверки подписи врезультате EXT_VerifyViewSignResult. Какие элементы этого массивасигнализируют о достоверности/недостоверности подписи, сертификата и какможно получить время подписи.EXT_GetSignInfo возвращает сертификат подписавшего и информациюнедостаточную для получения требуемых сведений. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Echo Опубликовано 24 Января 2006 Жалоба Поделиться Опубликовано 24 Января 2006 Добрый день! Цитирую ответы разработчиков на Ваши вопросыQUOTE======================> к сожалению, в документации не описан этот массив данных. Описан. Смотрите структуру EXT_SIGN_RESULT и описание параметра pSignaturesResults структуры EXT_SIGN_CONTEXT.> Как я могу программно узнать: > 1. Действительна ли подпись> 2. Действителен ли сертификат> EXT_GetSignInfo возвращает сертификат подписавшего и информацию недостаточную для получения требуемых сведений. В демонстрационном примере cipftst1.c подробно рассмотрено, как осуществляется проверка подписи при использовании функции ExtVerifySign. После вызова функции ExtVerifySign параметр SignaturesNum структуры EXT_SIGN_CONTEXT будет содержать количество подписей. Параметр pSignaturesResults этой же структуры - указатель на массив данных, соответствующих результатам проверки подписи достоверность сертификата и достоверность подписи под данными см. ниже). Каждый элемент этого массива имеет размер (sizeof(EXT_SIGN_RESULT)) байт. Параметр ResultsSize этой же структуры будет содержать размер всего этого массива в байтах. Структура EXT_SIGN_RESULT содержит свего два поля: unsigned long CertResult; unsigned long SignResult; Соответственно, первое указывает на достоверность сертификата, второе - на достоверность подписи самих данных. Вся остальная информация получается через вызов функции EXT_GetSignInfo.> Как я могу программно узнать время подписи В демонстрационном примере cipftst1.c подробно рассмотрено, как осуществляется получение информации о подписи и подписанте. Для этого вызывается функция ExtGetSignInfo, которая вытаскивает из полученного при подписи результата подписи (ЭЦП) информацию о подписи и подписанте (структура EXT_SIGNATURE_CONTEXT). Индекс подписи передается в поле SignaturesNum структуры EXT_SIGN_CONTEXT. Затем на основе полученной об i-той подписи информации (закодированный сертификат подписавшего пользователя и закодированная информация о подписи), вытаскивается требуемая информация о самой подписи ( путем раскодирования структуры _CMSG_SIGNER_INFO с помощью функций Microsoft CryptoAPI). В частности, в демонстрационном примере показано, как из закодированной структуры _CMSG_SIGNER_INFO получить дату/время подписи (см. функцию GetSignTime в файле cipftst1.c).> Как я могу программно узнать все данные, которые показываются в >окне проверки подписи в результате EXT_VerifyViewSignResult. ВСЕ данные можно получить из структуры EXT_SIGNATURE_CONTEXT (информация о подписи и сертификате), поля pSignaturesResults структуры EXT_SIGN_CONTEXT - результат проверки сертфиката и самой подписи под данными, а также поля pControlInfo - структуры EXT_SIGN_CONTEXT (Контрольная сумма электронной цифровой подписи, хотя это необязательный параметр и, используется в отдельных случаях для задач, базирующихся на решениях ViPNet).=========С уважением, Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.