Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2009(UTC) Сообщений: 119 Откуда: Moscow
|
Добрый день, хотелось бы узнать как можно получить сертификат из руткена. Или хотябы получить сертификат по имени контейнера. Если кто-нибудь делал, подскажите, Please...
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
С помощью Sharpei? Gost3410CryptoServiceProvider.ContainerCertificate В SDK есть пример (Simple.zip\Certificate\cs\InstallMy.cs) установки сертификата из контейнера в хранилище MY со ссылкой на секретный ключ. |
С уважением, Александр. |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2009(UTC) Сообщений: 119 Откуда: Moscow
|
Да, при помощи Sharpei. Ок, а как узнать имена контейнеров в рутокене? Пытаюсь узнать имя через API Функции следующим образом ( примерно так без лишних параметров): hProv=CryptAcquireContext( "Aktiv ruToken CSP v1.0", Тип=1,CRYPT_VERIFYCONTEXT) CryptGetProvParam(hProv,PP_ENUMCONTAINERS,NULL,&size,CRYPT_FIRST); //Получаем первый котейнер (его размер ) CryptGetProvParam(hProv,PP_ENUMCONTAINERS,ContName,&size,CRYPT_FIRST); //Получаем первый котейнер for(;;) { //В цикле вытаскиваю следующие контейнеры CryptGetProvParam(hProv,PP_ENUMCONTAINERS,ContName,&size,CRYPT_NEXT); //Получаем следующий контейнер } В результате, находит контейнер (его имя) но оно не совпадает с тем что я ручками определяю через CSP ( находящуюся в Панели Управления ). Если использовать имя найденное выше указанным образом . не удаётся получить сертификат . если использовать имя которое я рчками получаю через панель управления CSP . то сертификат именно тот что нужен. Кто знает, как получить правильное имя контейнера Отредактировано пользователем 24 марта 2010 г. 15:49:00(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Код:hProv=CryptAcquireContext( "Aktiv ruToken CSP v1.0", Тип=1,CRYPT_VERIFYCONTEXT)
Это контекст RSA провайдера, Вам нужен CSP провайдер Код:hProv=CryptAcquireContext( NULL, Тип=75,CRYPT_VERIFYCONTEXT)
Перечисляем все контейнеры для провайдера (75) Цитата:CryptGetProvParam(hProv,PP_ENUMCONTAINERS,NULL,&size,CRYPT_FIRST); //Получаем первый котейнер (его размер ) CryptGetProvParam(hProv,PP_ENUMCONTAINERS,ContName,&size,CRYPT_FIRST); //Получаем первый котейнер Если добавить к CRYPT_FIRST еще и CRYPT_UNIQUE(0x08) будем получать, кроме имен контейнеров, еще и уникальные имена контейнеров (они будут возвращаться второй строкой внутри возвращаемых данных) и сможем отфильтровать те имена, которые содержат "SCARD\rutoken_" Цитата:CryptGetProvParam(hProv,PP_ENUMCONTAINERS,NULL,&size,CRYPT_FIRST|CRYPT_UNIQUE); //Получаем первый котейнер (его размер ) CryptGetProvParam(hProv,PP_ENUMCONTAINERS,ContName,&size,CRYPT_FIRST|CRYPT_UNIQUE); //Получаем первый котейнер UniqueContName += strlen( ContName ) + 1 if( UniqueContName.Contains( "SCARD\rutoken_" ) )... |
С уважением, Александр. |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close