Статус: Новичок
Группы: Участники
Зарегистрирован: 11.10.2012(UTC) Сообщений: 8
|
Цель - подписать фрагмент XML-документа с помощью созданной для этого функции. Имеется .pfx-файл на диске. Использую код: Код:
X509Certificate2 CPCertificate = new X509Certificate2("Путь к pfx-файлу", "ПАРОЛЬ");
Появляется окно с заголовком "КриптоПро CSP" и сообщением "Вставьте и выберите носитель для хранения контейнера закрытого ключа...". Из списка устройств выбираю флешку. Появляется новое диалоговое окно с предложением выбрать пароль для создаваемого контейнера. Указываю пароль. На флешке появляются директории с множеством .key-файлов. После этого фрагмент XML уже нормально подписывается. Недостатки данного метода, которые хотелось бы устранить: 1) Требуется вставленная флешка. 2) Каждый запуск программы приводит к созданию ненужных директорий. Приходится писать дополнительный код по их удалению после работы программы. 3) Диалоговые окна, которые не нужны, я хочу только подписать фрагмент XML при помощи .pfx. Раньше с криптографией не работал. Просьба помочь решить проблему.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.10.2012(UTC) Сообщений: 8
|
Для подписи фрагмента XML мне нужен объект класса X509Certificate2. Использование именно PFX-файла непринципиально. Пусть на флешке уже лежат .key-файлы. Пусть флешка постоянно вставлена в компьютер. Можно ли создать объект класса X509Certificate2 беззвучно (SILENT)? То есть подписать XML без отображения каких-либо диалогов? Например, от диалога при вызове ComputeSignature() избавиться можно.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 130 Поблагодарили: 26 раз в 25 постах
|
То есть сертификат в хранилище (Пользователя или компьютера) не установлен? Если сертификат присутствует в контейнере закрытого ключа, то можно воспользоваться свойством Gost3410CryptographicServiceProvider ContainerCertificate, содержащим сертификат. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.10.2012(UTC) Сообщений: 8
|
Сертификат в хранилище не установлен. Сертификат присутствует в контейнере закрытого ключа, так как после отображения диалогов и появления на флешке .key файлов вместо PFX, фрагмент XML подписывается правильно.
Не подскажете, как получить объект класса X509Certificate2, воспользовавшись свойством Gost3410CryptographicServiceProvider ContainerCertificate и путём к .key-файлам?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.10.2012(UTC) Сообщений: 8
|
Если установить сертификат в хранилище "Личные", то диалоги не отображаются. Но по-прежнему требуется вставленная флешка. Возможно ли всё-таки избежать установки сертификата в хранилище или наличия вставленной флешки?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
CPSharpUser написал:Если установить сертификат в хранилище "Личные", то диалоги не отображаются. Но по-прежнему требуется вставленная флешка. Возможно ли всё-таки избежать установки сертификата в хранилище или наличия вставленной флешки? На флешке - закрытый ключ, каким образом без его участия предполагается создавать ЭЦП? Скопируйте контейнер и установите в реестр с привязкой к сертификату - тогда внешних носителей не потребуется |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.10.2012(UTC) Сообщений: 8
|
Может быть, это принципиально невозможно. Я уже говорил, что новичок в криптографии. Но я рассчитывал использовать файлы на локальном диске в папке с моим проектом. То есть разместить рядом с .EXE .PFX или папку с *.key-файлами (насколько я понимаю, в них содержатся и закрытый ключ, и сертификат). И далее их использовать. То есть обойтись без флешки, реестра, хранилищ. Если это невозможно, то прекращаю все попытки. Если возможно, то просьба указать, как именно можно это сделать.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Не нужно использовать PFX, используй Реестр\съемный носитель |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Ключевая система КриптоПро CSP не подразумевает использования файлов в качестве контейнеров ключей. Вышеуказанная задача сложна и не очень понятен ее смысл. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 24.06.2013(UTC) Сообщений: 14 Откуда: Владивосток Сказал(а) «Спасибо»: 4 раз
|
Автор: maxdm Ключевая система КриптоПро CSP не подразумевает использования файлов в качестве контейнеров ключей. Вышеуказанная задача сложна и не очень понятен ее смысл. А вот очень надо, скажу я вам. Пожалуйста, подкиньте ключевое направление реализации именно этого способа. Если это сложно, значит, это уже есть и используется. А требуется это для прогона интеграционных тестов на TFS сервере. Указывать хранилище в виртуальной закрытой среде не очень удобно. Есть какие-либо пути?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close