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

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

Коллеги, доброго дня.

Имеется следующая конфигурация:

1. RuToken, на нём - ключ Vipnet.

2. Vipnet CSP. В его GUI виден RuToken, и виден на нём ключевой контейнер.

3. Приложение: использует Vipnet CSP через MS crypto API, хочет подписать ключевой парой, находящейся на токене.

Проблема:

Чтобы в MS crypto API создать контекст криптопровайдера, нужно передать полный путь к ключевому контейнеру.

Вопрос:

Как, имея данные ключевого контейнера из UI Vipnet CSP, скомпоновать путь, по которому контейнер будет найден випнетом, обёрнутым в MS crypto API?

Дополнительные данные:

Випнет показывает "путь": Rutoken/Rutoken S(2ee8742b ), "имя контейнера": eds_for_vipnetcsp, но попытки из этого что-то скомпоновать пока к успеху не привели. Например,

Rutoken/Rutoken S(2ee8742b )/eds_for_vipnetcsp не работает.

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

  • 5 месяцев спустя...

Здравствуйте!

У нас точно такая же задача. Можете ли скинуть пример обращения к контейнеру(VipNet) на РуТокене для подписания и проверки сообщения с помощью MS crypto API? Или ссылку где про это можно почитать.

Заранее большое спасибо.

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

Тогда следующий вопрос. Ситуация подобная, но используется одновременно несколько Рутокенов. Как программно определить полный путь до контейнера в удобоваримом представлении (что-то типа \\!\Rutoken/Rutoken S\\<имя контейнера>)? Для этих целей в крипто про есть ключ CRYPT_FQCN. Есть ли что нить подобное в ВипНет? SDK замусолил до дыр. Там ничего нет. Но апплет ВипНет это делать умеет. Как?

P.S. Win XP SP3

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

Здравствуйте!

У нас точно такая же задача. Можете ли скинуть пример обращения к контейнеру(VipNet) на РуТокене для подписания и проверки сообщения с помощью MS crypto API? Или ссылку где про это можно почитать.

Заранее большое спасибо.

Если делать это, как написано MSDN, т.е.

CryptAcquireContext(,CRYPT_VERIFYCONTEXT)

CryptGetProvParam(,PP_ENUMCONTAINERS,,CRYPT_FIRST)

...

CryptGetProvParam(,PP_ENUMCONTAINERS,,,CRYPT_NEXT)

то получишь список всех контейнеров. Где они находятся неизвестно. При попытке обращения к любому найденному, кроме тех которые находятся на HDD, вылезает противное окошко с предложением самостоятельно выбрать токен где находится контейнер. Т.е. ВипНет выдавая список доступных контейнеров, сам потом не может их найти ))). Частично можно упростить задачу используя недокуменнтированный ключ CRYPT_UNIQUE (наткнулся случайно).

Т.е.

CryptAcquireContext(,CRYPT_VERIFYCONTEXT)

CryptGetProvParam(,PP_ENUMCONTAINERS,,CRYPT_FIRST or CRYPT_UNIQUE)

...

CryptGetProvParam(,PP_ENUMCONTAINERS,,,CRYPT_NEXT or CRYPT_UNIQUE)

Тогда выдаст список уникальных путей до контейнера, что то в виде 1|2\5|300\17|00a2d83e \8|sgn-4e20-6af0-95af-5fdb.

С этим еще можно хоть как то работать.

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

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

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

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

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

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

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

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

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

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

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

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