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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline v.codemaster  
#1 Оставлено : 8 мая 2014 г. 13:11:23(UTC)
v.codemaster

Статус: Новичок

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

Здравствуйте.

Преамбула: есть xml запрос к серверу НБКИ в формате xml. Безопасность обеспечена цифровой подписью PKCS7 и кодированием в
base64. Купил у вас cryptopro sdk.net, в консольный проект подключил сборки
CryproPro.Sharpei ...
Для подписи данных взял пример с# из образцов в sdk.

Код подписи:

static byte[] SignPKCS7(Byte[] msg, X509Certificate2 signerCert)
{ // Подписываем сообщение секретным ключом.
// Создаем объект SignedCms

ContentInfo contentInfo = new ContentInfo(msg);
SignedCms signedCms = new SignedCms(contentInfo);

CmsSigner cmsSigner = null;
try
{
cmsSigner = new CmsSigner(signerCert);
}
catch (Exception ex)
{
Console.WriteLine("CmsSigner initialize error:" + ex.Message);
}

signedCms.ComputeSignature(cmsSigner, false);

// Кодируем CMS/PKCS #7 сообщение.
return signedCms.Encode();
}

signedCms.ComputeSignature выкидывает CryptographicException - Ключ не существует.

Тестировал на 3 разных ключах. Результат один и тот же.
Crypto PRO установлен. Паролей на сертификатах нет.

Подскажите, в каком направлении копать. Заранее благодарен.
Offline Максим Коллегин  
#2 Оставлено : 8 мая 2014 г. 15:11:21(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
А откуда берется signerCert?
Знания в базе знаний, поддержка в техподдержке
Offline v.codemaster  
#3 Оставлено : 8 мая 2014 г. 15:45:01(UTC)
v.codemaster

Статус: Новичок

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


...
X509Certificate2 certificate = new X509Certificate2();
certificate.Import("путь к файлу ecp");
...

потом:
SignPKCS7(msg, certificate);
Offline Андрей Писарев  
#4 Оставлено : 8 мая 2014 г. 16:19:15(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Автор: v.codemaster Перейти к цитате

...
X509Certificate2 certificate = new X509Certificate2();
certificate.Import("путь к файлу ecp");
...

потом:
SignPKCS7(msg, certificate);


Цитата:
путь к файлу ecp


Файл ecp - это файл с сертификатом (.cer)?
Техническую поддержку оказываем тут
Наша база знаний
Offline Максим Коллегин  
#5 Оставлено : 8 мая 2014 г. 17:00:00(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Может стоит воспользоваться кодом из примера?
Знания в базе знаний, поддержка в техподдержке
Offline v.codemaster  
#6 Оставлено : 8 мая 2014 г. 17:20:40(UTC)
v.codemaster

Статус: Новичок

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

to Андрей:
да, путь к файлу сертификата .cer. Сертификат зарегистрирован в корневом хранилище.

to maxdm:
при любом варианте получения экземпляра класса X509Certificate2: импортом из файла, поиском в хранилище через X509Store, или через диалог X509Certificate2UI результат один и тот же - Ключ не существует.

Offline Андрей Писарев  
#7 Оставлено : 8 мая 2014 г. 17:30:01(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Автор: v.codemaster Перейти к цитате
to Андрей:
да, путь к файлу сертификата .cer. Сертификат зарегистрирован в корневом хранилище.

to maxdm:
при любом варианте получения экземпляра класса X509Certificate2: импортом из файла, поиском в хранилище через X509Store, или через диалог X509Certificate2UI результат один и тот же - Ключ не существует.



Что возвращает тестирование это сертификата через Панель управления\КриптоПРО CSP\Сервис\Протестировать ?
Техническую поддержку оказываем тут
Наша база знаний
Offline v.codemaster  
#8 Оставлено : 12 мая 2014 г. 6:53:48(UTC)
v.codemaster

Статус: Новичок

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

Возможно проблема здесь.

Не могу выполнить тестирование.
Имя ключевого контейнера пустое. Нажимаю кнопку Обзор - список ключевых контейнеров пустой. Нажимаю
кнопку По сертификату - выпадает окно с зарегистрированными сертификатами в корневом хранилище, выбираю нужный,
поле - имя ключевого контейнера так и остается пустым, видимо в связи с этим кнопка Далее формы тестирования сертификата
не доступна. У меня файл подписи на hdd. Если я правильно понимаю, для его тестирования нужно создать контейнер, например
на флопике?
Offline Андрей Писарев  
#9 Оставлено : 12 мая 2014 г. 8:02:38(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Автор: v.codemaster Перейти к цитате
Возможно проблема здесь.

Не могу выполнить тестирование.
Имя ключевого контейнера пустое. Нажимаю кнопку Обзор - список ключевых контейнеров пустой. Нажимаю
кнопку По сертификату - выпадает окно с зарегистрированными сертификатами в корневом хранилище, выбираю нужный,
поле - имя ключевого контейнера так и остается пустым, видимо в связи с этим кнопка Далее формы тестирования сертификата
не доступна. У меня файл подписи на hdd. Если я правильно понимаю, для его тестирования нужно создать контейнер, например
на флопике?


Контейнера нет с закрытым ключом и есть только сам сертификат ("файл подписи")?

Делайте как положено...
Контейнер, ключи, сертификат...
можно в тестовом УЦ Крипто-ПРО получить (открывать в IE) ...
Техническую поддержку оказываем тут
Наша база знаний
Offline v.codemaster  
#10 Оставлено : 12 мая 2014 г. 8:21:30(UTC)
v.codemaster

Статус: Новичок

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

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