Статус: Участник
Группы: Участники
Зарегистрирован: 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 проставилась?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.12.2016(UTC) Сообщений: 17 Откуда: Раменское Сказал(а) «Спасибо»: 1 раз
|
ну где же вы, гуру криптографии
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
2. Да, в примере устанавливается пин-код на закрытый ключ сертификата. 3. На клиенте понадобится установить КриптоПро CSP, КриптоПро .NET. Если будете делать усовершенствованную подпись, то ещё TSP и OCSP клиенты. |
|
1 пользователь поблагодарил Георгий Садофьев за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.12.2016(UTC) Сообщений: 17 Откуда: Раменское Сказал(а) «Спасибо»: 1 раз
|
а криптопро DPF не нужно?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
Нет. КриптоПро PDF понадобится, если будете проверять подпись в Adobe Reader'е. Если пользователи будут проверять документы в Вашем ПО, то и КриптоПро PDF не нужен. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close