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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline borz  
#1 Оставлено : 8 апреля 2009 г. 13:36:12(UTC)
borz

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

Группы: Участники
Зарегистрирован: 08.04.2009(UTC)
Сообщений: 5
Откуда: Москва

Написал программу, которая подписывает файл с помощью высокоуровневых функций CryptSignMessage() из MS CryptoAPI. У меня и еще на нескольких машинах программа отрабатывает без сбоев.

Однако на двух машинах программа дает сбой: первый вызов CryptSignMessage() приводит к ошибке 0x8009200B ("Не удается найти сертификат и закрытый ключ для расшифровки").
Offline Kirill Sobolev  
#2 Оставлено : 8 апреля 2009 г. 14:50:33(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Возможно, на этих двух машинах нет привязки закрытого ключа к сертификату подписчика.
Техническую поддержку оказываем тут
Наша база знаний
Offline borz  
#3 Оставлено : 8 апреля 2009 г. 15:56:48(UTC)
borz

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

Группы: Участники
Зарегистрирован: 08.04.2009(UTC)
Сообщений: 5
Откуда: Москва

А каким образом связать сертификат с закрытым ключом на конкретной машине?

Я не использую хранилище сертификатов, а получаю сертификат с выбранного пользователем типа считывателя.

Отредактировано пользователем 8 апреля 2009 г. 17:03:59(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#4 Оставлено : 8 апреля 2009 г. 17:08:48(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Техническую поддержку оказываем тут
Наша база знаний
Offline borz  
#5 Оставлено : 13 апреля 2009 г. 13:53:57(UTC)
borz

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

Группы: Участники
Зарегистрирован: 08.04.2009(UTC)
Сообщений: 5
Откуда: Москва

Спасибо, вторая ссылка оказалась весьма полезной!
Offline borz  
#6 Оставлено : 30 июня 2011 г. 20:42:46(UTC)
borz

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

Группы: Участники
Зарегистрирован: 08.04.2009(UTC)
Сообщений: 5
Откуда: Москва

Добрый день!

Мое ПО успешно работало с Crypto-Pro CSP версии 3. Тогда задача стояла в подписывании документов с помощью ЭЦП. При этом сертификаты необходимо было брать непосредственно со считывателя (без использования хранилища сертификатов). Вызов функции с указанными параметрами CryptAcquireContext(&hProv, "", "", 75, 0) позволял это сделать в UI-окне, в котором можно было выбрать нужный тип считывателя.

В версии 3.6 Crypto-Pro CSP вызов CryptAcquireContext(&hProv, "", "", 75, 0) приводит к появлению того же окна, но при выборе считывателя выдается "Keyset does not exist", даже если ключевой носитель вставлен в считыватель.

Почитав форум, обнаружил, что вызов CryptAcquireContext(&hProv, "", "", 75, 0) опрашивает контейнер по умолчанию на считывателе по умолчанию. То есть криптопровайдер не находит контейнер по умолчанию.

Подскажите, пожалуйста, как в этом случае выбрать для подписи сертификат с нужного считывателя - ruToken, eToken, реестр? Ведь система ничего не знает о контейнере на носителе, который еще не вставлен в считыватель.
Offline Kirill Sobolev  
#7 Оставлено : 1 июля 2011 г. 14:05:54(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
А как в принципе можно выбрать сертификат, которого в системе нет?
Сначала Вам надо открыть провайдер по имени считывателя, перебрать там все контейнеры и уже из них выбирать.
Техническую поддержку оказываем тут
Наша база знаний
Offline borz  
#8 Оставлено : 1 июля 2011 г. 16:21:57(UTC)
borz

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

Группы: Участники
Зарегистрирован: 08.04.2009(UTC)
Сообщений: 5
Откуда: Москва

Спасибо за быстрый ответ!

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