Статус: Новичок
Группы: Участники
Зарегистрирован: 15.12.2017(UTC) Сообщений: 4
|
Добрый день.
По долгу службы необходимо найти способ получения сертификата со смарт карты (USB токена) и подписывания некоторых данных приватным ключом с этого токена. Удалось это сделать при помощи криптопро .NET SDK, за счет Gost3410CryptoServiceProvider (на карте сертификат с алгоритмом подписи ГОСТ Р 34.11/34.10-2001). Возник вопрос, существует ли способ сделать то же самое без .NET SDK? И есть ли аналог для C++?
Спасибо
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834 Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Автор: pejexudi Добрый день.
По долгу службы необходимо найти способ получения сертификата со смарт карты (USB токена) и подписывания некоторых данных приватным ключом с этого токена. Удалось это сделать при помощи криптопро .NET SDK, за счет Gost3410CryptoServiceProvider (на карте сертификат с алгоритмом подписи ГОСТ Р 34.11/34.10-2001). Возник вопрос, существует ли способ сделать то же самое без .NET SDK? И есть ли аналог для C++?
Спасибо Добрый день. На С++ данные операции можно выполнить с использованием вызовов MS CryptoAPI, обращающихся к нашему провайдеру КриптоПро CSP. Подробнее можно о них почитать на MSDN или cpdn.cryptopro.ru. Примеры есть в SDK для CSP. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.12.2017(UTC) Сообщений: 4
|
Сергей, спасибо за ответ. Можете подсказать, где найти набор библиотек CryptoPro для C++? Судя по первой попавшейся ссылке, мне нужен некий wincsp.h, чтобы использовать CPAcquireContext и прочие функции. Даже для нативных виндовых, вроде CryptAcquireContext, нужны специфические параметры, например PROV_GOST_2012_256, которых нет в стандартных либах.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
wincsp.h скоее всего не понадобится. Но WincryptEx.h нужен - входит в sdk, доступное для загрузке на странице с CSP. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.12.2017(UTC) Сообщений: 4
|
Возник новый вопрос по теме. Вот часть кода на C#, с помощью которого можно подписать некие данные, используя приватный ключ со смарткарты:
var params = new CspParameters(); params.ProviderType = 75; params.Flags = CspProviderFlags.UseDefaultKeyContainer;
var provider = new Gost3410CryptoServiceProvider(params); var alg = new Gost3411CryptoServiceProvider();
var result = provider.SignData(data, alg);
От data вычисляется хеш, подписывается, но при этом не запрашивается PIN код от смарткарты. Может быть я что-то упустил? Пробовал аналогичные действия с примером из SDK "Gost3410CSPSample.cs" - результат аналогичный. Есть подозрение, что раз PIN код не запрашивается, то и к приватному ключу обращения не происходит..
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Зачем default container? Скорее всего используется ключ не со смарткарты. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.12.2017(UTC) Сообщений: 4
|
Автор: maxdm Зачем default container? Скорее всего используется ключ не со смарткарты. К сожалению нету должной экспертизы в этой области. Если запустить приложенный код без смарткарты, то появится окно с Крипто Про CSP с просьбой вставить и выбрать карту. После этого в ContainerCertificate будт лежать тот самый сертификат, который я вижу через Панель управления РуТокен. У этого объекта есть поле PrivateKey, с этой точки зрения все похоже на правду.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close