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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline wolfree9266  
#1 Оставлено : 13 декабря 2016 г. 14:10:34(UTC)
wolfree9266

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Здравствуйте.
Нужна помощь в разборе нескольких моментов.

1.При простановки подписи на PDF у меня производится выбор сертификата из личных.

Код:

X509Certificate2Collection coll = X509Certificate2UI.SelectFromCollection(store.Certificates, "Выберите сертификат", "Выберите сертификат", X509SelectionFlag.SingleSelection);
X509Certificate2 certificate = coll[0];


Подскажите пожалуйста, как при отсутствии личных сертификатов на пк и при вставленом rutoken'e, произвести установку сертификата с rutoken.
Если на rutoken несколько сертификатов, взять тот, который не просроченный.
Если не просроченных несколько предоставить выбор пользователю, какой установить сертификат.

Или же может можно как то проставить подпись используя сертификат rutoken не устанавливая его на пк?
Такой вариант даже лучше.

2. В sdk, в simple35 нашел пример, как проставить подпись на PDF. Я правильно понимаю, что на сертификат установленный на пк (в личных),устанавливаем пароль?
Если не так, объясните пожалуйста, что выполняется в данном отрезке кода.
Код:

 //set password.
                Gost3410CryptoServiceProvider cert_key = certificate.PrivateKey as Gost3410CryptoServiceProvider;
                if (null != cert_key)
                {
                    var cspParameters = new CspParameters();
                    //копируем параметры csp из исходного контекста сертификата
                    cspParameters.KeyContainerName = cert_key.CspKeyContainerInfo.KeyContainerName;
                    cspParameters.ProviderType = cert_key.CspKeyContainerInfo.ProviderType;
                    cspParameters.ProviderName = cert_key.CspKeyContainerInfo.ProviderName;
                    cspParameters.Flags = cert_key.CspKeyContainerInfo.MachineKeyStore
                                      ? (CspProviderFlags.UseExistingKey | CspProviderFlags.UseMachineKeyStore)
                                      : (CspProviderFlags.UseExistingKey);
                    cspParameters.KeyPassword = new SecureString();
                    foreach (var c in args[2])
                    {
                        cspParameters.KeyPassword.AppendChar(c);
                    }
                    //создаем новый контекст сертификат, поскольку исходный открыт readonly
                    certificate = new X509Certificate2(certificate.RawData);
                    //задаем криптопровайдер с установленным паролем
                    certificate.PrivateKey = new Gost3410CryptoServiceProvider(cspParameters);
                }


3.
Используя метод простановки подписи на PDF из .NET SDK (simple35)
Используются библиотеки
Код:

    using iTextSharp.text.pdf;
    using Org.BouncyCastle.X509;
    using System.Security.Cryptography.Pkcs;
    using CryptoPro.Sharpei;

Какое ПО нужно иметь пользователю, для того, чтобы код смог скомпилироваться и подпись на PDF проставилась?



Offline wolfree9266  
#2 Оставлено : 14 декабря 2016 г. 11:33:12(UTC)
wolfree9266

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
ну где же вы, гуру криптографии
Offline Георгий Садофьев  
#3 Оставлено : 14 декабря 2016 г. 12:54:23(UTC)
Георгий Садофьев

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

Группы: Участники
Зарегистрирован: 14.10.2011(UTC)
Сообщений: 144
Мужчина

Поблагодарили: 31 раз в 30 постах
2. Да, в примере устанавливается пин-код на закрытый ключ сертификата.
3. На клиенте понадобится установить КриптоПро CSP, КриптоПро .NET. Если будете делать усовершенствованную подпись, то ещё TSP и OCSP клиенты.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Георгий Садофьев за этот пост.
wolfree9266 оставлено 14.12.2016(UTC)
Offline wolfree9266  
#4 Оставлено : 14 декабря 2016 г. 14:20:46(UTC)
wolfree9266

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
а криптопро DPF не нужно?
Offline Георгий Садофьев  
#5 Оставлено : 14 декабря 2016 г. 15:00:14(UTC)
Георгий Садофьев

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

Группы: Участники
Зарегистрирован: 14.10.2011(UTC)
Сообщений: 144
Мужчина

Поблагодарили: 31 раз в 30 постах
Нет. КриптоПро PDF понадобится, если будете проверять подпись в Adobe Reader'е.
Если пользователи будут проверять документы в Вашем ПО, то и КриптоПро PDF не нужен.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.