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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline velgames  
#1 Оставлено : 24 ноября 2015 г. 14:29:15(UTC)
velgames

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

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

Сказал «Спасибо»: 1 раз
Добрый день, делаю шифрование на основе CryptoApi WinApi C++.
Дело сделано, однако во время тестов заметил что с некоторыми сертификатами (тестовыми из тестового УЦ КриптоПро) прорамма виснет на 10 минут а потом говорит что не может получить доступ к CSP сертификата. Оказалось проблема в тех сертификатах, закрытые ключи которых запаролены.
Получается что окно ввода не появляется и программа стоит и ждет пока не выйдет время.
Видел на форуме вариант, когда пин заранее устанавливается прямо в коде и тогда должно работать, однако нам необходимо чтобы выдавалось именно окно ввода пин как это делается в .NET версии библиотеки.
Можно ли это сделать на C++?
Offline Андрей Писарев  
#2 Оставлено : 24 ноября 2015 г. 14:38:35(UTC)
Андрей *

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

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

Сказал «Спасибо»: 554 раз
Поблагодарили: 2249 раз в 1755 постах
Автор: velgames Перейти к цитате
Добрый день, делаю шифрование на основе CryptoApi WinApi C++.
Дело сделано, однако во время тестов заметил что с некоторыми сертификатами (тестовыми из тестового УЦ КриптоПро) прорамма виснет на 10 минут а потом говорит что не может получить доступ к CSP сертификата. Оказалось проблема в тех сертификатах, закрытые ключи которых запаролены.
Получается что окно ввода не появляется и программа стоит и ждет пока не выйдет время.
Видел на форуме вариант, когда пин заранее устанавливается прямо в коде и тогда должно работать, однако нам необходимо чтобы выдавалось именно окно ввода пин как это делается в .NET версии библиотеки.
Можно ли это сделать на C++?


Вариант - переписать код и не использовать свой закрытый ключ.

Воспользоваться функциями, которые получают на вход массив сертификатов.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#3 Оставлено : 24 ноября 2015 г. 14:41:35(UTC)
Андрей *

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

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

Сказал «Спасибо»: 554 раз
Поблагодарили: 2249 раз в 1755 постах
Еще получается в текущей реализации - требуются не только личные сертификаты,
но и полный доступ к закрытым ключам для шифрования?
Техническую поддержку оказываем тут
Наша база знаний
Offline velgames  
#4 Оставлено : 24 ноября 2015 г. 14:53:50(UTC)
velgames

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

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

Сказал «Спасибо»: 1 раз
Переписать нельзя. Все реализовано так как должно быть. Сертификаты хранятся в хранилище и на токенах.
Проблема конкретно в функции

CryptAcquireCertificatePrivateKey(senderCertificate, 0, nullptr, &hSender, &dwKeySpec, nullptr);

При вызове данного метода нужно отображать стандартное окно с вводом пикода хранилища закрытого ключа из КриптоПро CSP.
В .NET Sharpei сам выводит его при попытке обратиться или получить доступ к хранилищу закрытого ключа. Тут же его нет. Вот и думаю как решить эту проблему.
Offline Андрей Писарев  
#5 Оставлено : 24 ноября 2015 г. 15:36:52(UTC)
Андрей *

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

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

Сказал «Спасибо»: 554 раз
Поблагодарили: 2249 раз в 1755 постах
Автор: velgames Перейти к цитате
Переписать нельзя. Все реализовано так как должно быть. Сертификаты хранятся в хранилище и на токенах.
Проблема конкретно в функции

CryptAcquireCertificatePrivateKey(senderCertificate, 0, nullptr, &hSender, &dwKeySpec, nullptr);

При вызове данного метода нужно отображать стандартное окно с вводом пикода хранилища закрытого ключа из КриптоПро CSP.
В .NET Sharpei сам выводит его при попытке обратиться или получить доступ к хранилищу закрытого ключа. Тут же его нет. Вот и думаю как решить эту проблему.


При тестировании этого контейнера средствами панели управления КриптоПРО CSP - возникает диалог на ввод пароля?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
velgames оставлено 24.11.2015(UTC)
Offline velgames  
#6 Оставлено : 24 ноября 2015 г. 15:53:45(UTC)
velgames

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

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

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