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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline myusername  
#11 Оставлено : 19 декабря 2014 г. 12:32:00(UTC)
myusername

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Для логического завершения темы немного расскажу, как решил проблему в итоге.

Поменять сертификат VipNet на сертификат CryptoPro так и не получилось, поскольку для нас, как для исполнителей, это данность, с которой нужно как-то уживаться. В итоге пришлось долго и упорно разбираться с проблемой. (Причем одному, потому что все ветки на форуме Infotecs больше напоминают монолог: сам задал вопрос и, в лучшем случае, сам же на него ответил. В связи с этим команде КриптоПро отдельная благодарность!) Мои изыскания привели меня к тому, что я стал изучать исходный код КриптоПро .NET (через .NET Reflector, да простят меня разработчики). В итоге я попытался сделать все то же самое, что делает КриптоПро .NET, заменив лишь идентификатор криптопровайдера: с 75 (CryptoPro CSP) на 2 (VipNet CSP). После этого, я выполнил свой тест (который отлично работает с сертификатор CryptoPro и КриптоПро .NET). И он, конечно, не заработал. :) Однако не заработал по вполне конкретным причинам, которые удалось установить.

Первая ошибка, которая у меня произошла, была при обращении к VipNet CSP, при попытке установки KP_PADDING. Я, конечно, попытался выяснить, почему это происходит, но Infotecs мне так и не дал ответа. В итоге, я перебрал все возможные значения KP_PADDING и пришел к выводу, что VipNet CSP не поддерживает его программную установку. Это, конечно, мои субъективные выводы, касающиеся исключительно VipNet CSP 3.2 и 4.x и только моего операционного окружения. В итоге я просто закомментировал установку KP_PADDING. (В КриптоПро .NET установка KP_PADDING делается в приватном конструкторе класса CPCryptoAPITransform.) Исправление этой проблемы привело меня к следующей и, как выяснилось, последней.

Вторая ошибка произошла на этапе дешифрации, а именно, при дешифрации последнего блока зашифрованного сообщения. При вызове функции CryptDecrypt() с параметром Final=true она вернула false, соответственно было вызвано исключение. (В КриптоПро .NET вызов CryptDecrypt() осуществляется в методе COMCryptography.EndCrypt()). В итоге я проигнорировал результат последнего вызова функции CryptDecrypt() и проанализировал результат дешифрации. И пришел к выводу, что сообщение было полностью дешифровано и никакой ошибки на самом деле не произошло.

Таким образом, я пришел к собственным субъективным выводам. Во-первых, VipNet CSP не поддерживает установку KP_PADDING. Во-вторых, при вызове функции CryptDecrypt() с параметром Final=true при корректных данных она возвращает некорректный результат. Первую проблему я решил, проигнорировав результат установки KP_PADDING, вторую - проигнорировав результат дешифрации последнего блока сообщения. Решение, конечно, не из лучших, но в силу имеющейся данности (VipNet), с которой я вынужден уживаться, оно мне подошло.

Возможно, мои изыскания кому-нибудь помогут. :)

Отредактировано пользователем 19 декабря 2014 г. 12:35:43(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил myusername за этот пост.
Андрей * оставлено 31.12.2017(UTC)
Offline mtv06  
#12 Оставлено : 3 апреля 2018 г. 11:49:44(UTC)
mtv06

Статус: Активный участник

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

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