Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vdp1955  
#1 Оставлено : 19 декабря 2016 г. 17:29:51(UTC)
vdp1955

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.10.2013(UTC)
Сообщений: 93
Российская Федерация
Откуда: Москва

Здравствуйте.
Есть программа, которая через CryptAcquireContext выбирает криптопровайдер. Проблема возникает, если у пользователя связка КриптоПро CSP + КриптоПро ФКН, а он хочет работат с обычным (не ФКН) носителем. Можно ли это сделать не удаляя КриптоПРО ФКН? Например, последовательно проверяя все криптопровайдеры с типом 75.
Или, может быть, есть возможность просто временно отключить ФКН провайдер?
Offline Максим Коллегин  
#2 Оставлено : 20 декабря 2016 г. 9:27:31(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,426
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 38 раз
Поблагодарили: 736 раз в 633 постах
Нужно передать имя не ФКН-криптопровайдера.
Знания в базе знаний, поддержка в центре поддержки
Offline vdp1955  
#3 Оставлено : 20 декабря 2016 г. 10:57:56(UTC)
vdp1955

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.10.2013(UTC)
Сообщений: 93
Российская Федерация
Откуда: Москва

Так куда передать-то?

Мы ведь получаем контекст по типу провайдера:
CryptAcquireContext(&hCryptProv, CONTAINER, NULL,PROV_GOST_2001_DH, 0)

А имя провайдера и контейнера получаем уже из контекста:
CryptGetProvParam(hCryptProv, PP_NAME, pbData, &cbData, 0)
CryptGetProvParam(hCryptProv, PP_CONTAINER, pbData, &cbData, 0)

И при этом по типу 75 возвращается контекст ФКН провайдера и, соответственно, его контейнер.
Offline vdp1955  
#4 Оставлено : 20 декабря 2016 г. 11:09:46(UTC)
vdp1955

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.10.2013(UTC)
Сообщений: 93
Российская Федерация
Откуда: Москва

Прошу прощения за предыдущий вопрос - нужно было внимательнее смотреть API.
Я понял, что третий параметр CryptAcquireContext это и есть имя криптопровайдера. Но теперь еще один вопрос - где получить это имя? Или имена криптопровайдеров есть в виде констант?
Offline Максим Коллегин  
#5 Оставлено : 20 декабря 2016 г. 14:27:27(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,426
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 38 раз
Поблагодарили: 736 раз в 633 постах
Есть, в нашем SDK - WincryptEx.h
Знания в базе знаний, поддержка в центре поддержки
Offline vdp1955  
#6 Оставлено : 20 декабря 2016 г. 15:25:16(UTC)
vdp1955

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.10.2013(UTC)
Сообщений: 93
Российская Федерация
Откуда: Москва

Спасибо!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.