Jump to content

Recommended Posts

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

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

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 не работает.

Share this post


Link to post
Share on other sites
Guest cjsbox

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

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

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

Share this post


Link to post
Share on other sites
Guest GoshaSH

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

P.S. Win XP SP3

Share this post


Link to post
Share on other sites
Guest GoshaSH

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

У нас точно такая же задача. Можете ли скинуть пример обращения к контейнеру(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.

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.