Перейти к контенту

Рекомендуемые сообщения

Вопрос по проверке ЭЦП про помощи VipNet SDK:

Мне необходимо получить информацию, наподобие той, что показывается при

вызове функции EXT_VerifyViewSignResult, только мне не нужно показывать

окно результатов проверки подписи, отсюда, я пользуюсь функцией

EXT_VerifySign.

Эта функция в pSignContext->pSignaturesResults возвращает "массив данных,

соответствующих результатам проверки подписи (достоверность сертификата и

достоверность подписи под данными)", но к сожалению, в документации не

описан этот массив данных. Как я могу программно узнать:

1. Действительна ли подпись

2. Действителен ли сертификат

3. Время подписи

То есть все данные, которые показываются в окне проверки подписи в

результате EXT_VerifyViewSignResult. Какие элементы этого массива

сигнализируют о достоверности/недостоверности подписи, сертификата и как

можно получить время подписи.

EXT_GetSignInfo возвращает сертификат подписавшего и информацию

недостаточную для получения требуемых сведений.

Ссылка на комментарий
Поделиться на других сайтах

Добрый день! Цитирую ответы разработчиков на Ваши вопросы

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).

=========

С уважением,

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...

Важная информация

Продолжая пользоваться сайтом вы принимаете Условия использования.