Pull to refresh

Comments 14

Спасибо за статью, еще добавлю: от криптопро потихоньку готовится библиотека https://github.com/CryptoPro/libcore, я его пробовал, работает вполне, но пока не все возможности имеются (см. readme)

Посмотрел, интересно. CryptoPro, как всегда, в своём репертуаре: выложили проект на GitHub, но исходники закрыли. Возможно, кому-то и в таком виде пригодится.

Они .NET Core 3.1 форкнули полностью, поэтому можно использовать патченный dotnet (заменить крипто сборки по факту) и все будет работать. Мы крутим в докере патченный дотнет + официальный КриптоПро CSP, устраивает. Вот тут можно глянуть их примеры.

Автор молодец, хардово. Но .NET уже давно не про Windows, к счастью, для всех, но, к сожалению, для данной статьи.

Ну расскажите, как моей конторе легально купить windows pro или лучше подписку на msdn?

Fork .NET Core 3.1 у нас полностью открыт (https://github.com/CryptoPro/corefx). За всё время существования проекта -- ни одного merge request от сторонних разработчиков.

PR нет, потому что принцип "неуловимого Джо". Но наличие исходников - это не только возможность получать PRs от сообщества, но и возможность отладки, и анализа кода, а также понимания тонкостей работы библиотеки.

А мы решили оставить на net framework grpc сервис, который только принимает в себя сырой XML и отдает обратно подписанный, который и отправляется дальше, доставило в разы меньше боли :)

Я бы не сказал, что раньше было лучше. CryptoPro NET, емнип, патчил сборки фреймворка в gac. И если через Windows update прилетало обновление фреймворка, то неожиданно всё отваливалось

Использовать такой кастомный .NET с пропатченными сборками, по мне, можно только совсем от безнадёги. В обычном .NetFX почти вся криптография замыкалась на нативный CryptoAPI, с котором проблем я не припомню. Всё что мне лично было нужно, работало "из коробки".

Там проблемы были (и до сих пор есть) при проверке подписи XML. Потому что реализации алгоритмов выбираются не из реестра, а захардкожены в одном из методов оператором select.


Именно поэтому им понадобилось патчить сборки в GAC, и делать форк на который дали ссылку выше.


А, ну вы как раз один из подобных багов и нашли, и даже про него написали...

3 года назад портировал из библиотека bouncy castle java в ту же либу в net изменения для подписи по госту: все что нужно там было. В java версии не проверял, net версия заработала как ожидалось в linux в докере. Только сертификаты и ключ нужно из контейнера доставать вручную: поддержки контейнера криптопро в версии для net не было.

Sign up to leave a comment.

Articles