Работа с сертификатами на Rutoken S [Решено]
Цитата: Удаленный пользователь от 29.09.2020, 16:45Просьба ко всем.
1. Посмотрите видео по оформлению постов.
2. Картинки и большой текст прячьте под спойлер.Просто пролистайте эту тему и поймёте, что она стала нечитабельна в принципе.
Просьба ко всем.
1. Посмотрите видео по оформлению постов.
2. Картинки и большой текст прячьте под спойлер.
Просто пролистайте эту тему и поймёте, что она стала нечитабельна в принципе.
Цитата: Удаленный пользователь от 29.09.2020, 17:08Цитата: Roman Anderson [anomal3] от 29.09.2020, 16:31Выбираете сертификат ручками по пути и читаете его.
Так в том то и вопрос, как можно выбрать сертификат ручками с носителя типа Rutoken?
Это же не флешка, где я могу использовать OpenFileDialog, это именно что Rutoken.
И вопрос в том, как прочитать сертификат именно с Rutoken, а не из локального хранилища или файла *.cer из простого каталога.
Цитата: Roman Anderson [anomal3] от 29.09.2020, 16:31Выбираете сертификат ручками по пути и читаете его.
Так в том то и вопрос, как можно выбрать сертификат ручками с носителя типа Rutoken?
Это же не флешка, где я могу использовать OpenFileDialog, это именно что Rutoken.
И вопрос в том, как прочитать сертификат именно с Rutoken, а не из локального хранилища или файла *.cer из простого каталога.
Цитата: Удаленный пользователь от 29.09.2020, 17:10Цитата: Андрей от 29.09.2020, 16:45Просьба ко всем.
1. Посмотрите видео по оформлению постов.
2. Картинки и большой текст прячьте под спойлер.Просто пролистайте эту тему и поймёте, что она стала нечитабельна в принципе.
Добрый день, Андрей.
Прошу прощения за кажущийся беспорядок. Никогда раньше не пользовался форумами и даже не догадываюсь что такое "спойлер" и как под него прятать текст...
Обещаю разобраться на досуге.
Цитата: Андрей от 29.09.2020, 16:45Просьба ко всем.
1. Посмотрите видео по оформлению постов.
2. Картинки и большой текст прячьте под спойлер.Просто пролистайте эту тему и поймёте, что она стала нечитабельна в принципе.
Добрый день, Андрей.
Прошу прощения за кажущийся беспорядок. Никогда раньше не пользовался форумами и даже не догадываюсь что такое "спойлер" и как под него прятать текст...
Обещаю разобраться на досуге.
Цитата: Удаленный пользователь от 29.09.2020, 18:53И вопрос в том, как прочитать сертификат именно с Rutoken, а не из локального хранилища или файла *.cer из простого каталога.
Добрый вечер.
Если за последние годы ничего не поменялось, то суть таких Токенов как раз в том, что они аппаратно сделаны так, чтобы считывались только специальными утилитами.
Когда я пользовался Рутокенами по работе, то на него можно было записать электронную подпись как вместе с открытым сертификатом, так и без него.
Если открытого сертификата на Рутокене не записано, то и читать не чего там. И да, это не флешка, хоть и похожа на нее, это совсем другой устройство.
И вопрос в том, как прочитать сертификат именно с Rutoken, а не из локального хранилища или файла *.cer из простого каталога.
Добрый вечер.
Если за последние годы ничего не поменялось, то суть таких Токенов как раз в том, что они аппаратно сделаны так, чтобы считывались только специальными утилитами.
Когда я пользовался Рутокенами по работе, то на него можно было записать электронную подпись как вместе с открытым сертификатом, так и без него.
Если открытого сертификата на Рутокене не записано, то и читать не чего там. И да, это не флешка, хоть и похожа на нее, это совсем другой устройство.
Цитата: Удаленный пользователь от 30.09.2020, 07:14Если за последние годы ничего не поменялось, то суть таких Токенов как раз в том, что они аппаратно сделаны так, чтобы считывались только специальными утилитами.
Когда я пользовался Рутокенами по работе, то на него можно было записать электронную подпись как вместе с открытым сертификатом, так и без него.
Если открытого сертификата на Рутокене не записано, то и читать не чего там. И да, это не флешка, хоть и похожа на нее, это совсем другой устройство.С добрым утром.
Я думаю особо ничего не поменялось, в плане хранения и защиты ЭЦП. Но появились SDK. У Рутокена они бесплатные, потому что защищать им нечего, они по сути предоставляют лишь контейнер. Так же есть КриптПро.Net. Штука уже платная (стоит конечно не дорого, что-то там около 10 баксов вроде), но даже 10 баксов не хочется тратить впустую, потому что не уверен в результате. А пообщавшись с ТП одной и другой стороны, как-то осталось очень уж много вопросов, по работе с этими SDK. Поэтому вот и прочесывают "гугл" на наличие примера решения без SDK и пример работы самой SDK, только не просто исходник класса, а именно живой пример, чтобы понять как это вообще работает. А иначе я бы просто купил готовую библиотеку с ТП и не парился бы) Но это не наш метод) хочется всё же разобраться, а не просто копипастить, даже не понимая сути. А в моем случае, так вообще, то что я взял из SDK на ГОСТ-2001 отказывается работать даже сам шаблон поиска, то есть именно тот момент, когда мне надо четко сказать: "хочу искать сертификат вот тут" (то есть на устройстве Rutoken S).
Как-то так в общем...
Ладно, в любом случае спасибо всем за помощь. Буду даже изучать забугорные гуглы)
Если за последние годы ничего не поменялось, то суть таких Токенов как раз в том, что они аппаратно сделаны так, чтобы считывались только специальными утилитами.
Когда я пользовался Рутокенами по работе, то на него можно было записать электронную подпись как вместе с открытым сертификатом, так и без него.
Если открытого сертификата на Рутокене не записано, то и читать не чего там. И да, это не флешка, хоть и похожа на нее, это совсем другой устройство.
С добрым утром.
Я думаю особо ничего не поменялось, в плане хранения и защиты ЭЦП. Но появились SDK. У Рутокена они бесплатные, потому что защищать им нечего, они по сути предоставляют лишь контейнер. Так же есть КриптПро.Net. Штука уже платная (стоит конечно не дорого, что-то там около 10 баксов вроде), но даже 10 баксов не хочется тратить впустую, потому что не уверен в результате. А пообщавшись с ТП одной и другой стороны, как-то осталось очень уж много вопросов, по работе с этими SDK. Поэтому вот и прочесывают "гугл" на наличие примера решения без SDK и пример работы самой SDK, только не просто исходник класса, а именно живой пример, чтобы понять как это вообще работает. А иначе я бы просто купил готовую библиотеку с ТП и не парился бы) Но это не наш метод) хочется всё же разобраться, а не просто копипастить, даже не понимая сути. А в моем случае, так вообще, то что я взял из SDK на ГОСТ-2001 отказывается работать даже сам шаблон поиска, то есть именно тот момент, когда мне надо четко сказать: "хочу искать сертификат вот тут" (то есть на устройстве Rutoken S).
Как-то так в общем...
Ладно, в любом случае спасибо всем за помощь. Буду даже изучать забугорные гуглы)
Цитата: Удаленный пользователь от 02.10.2020, 11:18В общем разобрался.
Для работы (в моем случае с Rutoken S с ГОСТ-2001), надо использовать sdk от КриптоПро. если хотим читать прямо с носителя, например вот так:
[spoiler]CspParameters csp = new CspParameters(); csp.ProviderType = 75; csp.KeyContainerName = Gost3410CryptoServiceProvider.SelectContainer(true, false, IntPtr.Zero); Gost3410CryptoServiceProvider gost = new Gost3410CryptoServiceProvider(csp);[/spoiler]
Если же хотим читать просто сертификат из локального хранилища, то вообще не обязательно никаких SDK производителей, достаточно использовать стандартный X509, например вот так:
[spoiler]X509Store store = new X509Store("MY", StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates; X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false); X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Выбор сертификата", "Выбирите сертификат, который необходимо прочитать ", X509SelectionFlag.MultiSelection); foreach (X509Certificate2 x509 in scollection) { try { Console.WriteLine("Friendly Name: {0}{1}", x509.FriendlyName, Environment.NewLine); //показывает всякое необходимое Console.WriteLine("Simple Name: {0}{1}", x509.GetNameInfo(X509NameType.SimpleName, true), Environment.NewLine); X509Certificate2UI.DisplayCertificate(x509); //показывает сертификат перед прочтением x509.Reset(); } catch (CryptographicException ex) { //бла-бла-бла }[/spoiler]
Собственно вот и все. Вдруг кому-то пригодится...
зы
научился пользоваться спойлерами))
В общем разобрался.
Для работы (в моем случае с Rutoken S с ГОСТ-2001), надо использовать sdk от КриптоПро. если хотим читать прямо с носителя, например вот так:
CspParameters csp = new CspParameters();
csp.ProviderType = 75;
csp.KeyContainerName = Gost3410CryptoServiceProvider.SelectContainer(true, false, IntPtr.Zero);
Gost3410CryptoServiceProvider gost = new Gost3410CryptoServiceProvider(csp);
Если же хотим читать просто сертификат из локального хранилища, то вообще не обязательно никаких SDK производителей, достаточно использовать стандартный X509, например вот так:
X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Выбор сертификата", "Выбирите сертификат, который необходимо прочитать ", X509SelectionFlag.MultiSelection);
foreach (X509Certificate2 x509 in scollection)
{
try
{
Console.WriteLine("Friendly Name: {0}{1}", x509.FriendlyName, Environment.NewLine); //показывает всякое необходимое
Console.WriteLine("Simple Name: {0}{1}", x509.GetNameInfo(X509NameType.SimpleName, true), Environment.NewLine);
X509Certificate2UI.DisplayCertificate(x509); //показывает сертификат перед прочтением
x509.Reset();
}
catch (CryptographicException ex)
{
//бла-бла-бла
}
Собственно вот и все. Вдруг кому-то пригодится...
зы
научился пользоваться спойлерами))