Pull to refresh

Comments 8

Все круто. И ладно бы unsafe. Но это чисто моя unsafe-фобия. Но вот WinAPI... Да для NET 7, который как раз то и про кросплатформенность... Уже на linux'е, на серверной стороне работать не будет...

Я бы посмотрел на то же самое, сделанное с помощью BouncyCastle...

Есть и под них код в загашнике, правда тоже для .NET, не для Java. С BC проблема другая, там вся крипта реализована в самой либе на C#. Соответственно, нет возможности работать с аппаратными носителями, контейнерами КриптоПРО и прочими штуками, обязательными по нашему законодательству.

Да, был опыт переконвертации экспортируемых ключевых контейнеров КриптоПРО в PFX, понимаемый OpenSSL и BC, но это слишком специфические задачи. Первый же неэкспортируемый ключевой контейнер ставит крест на этой либе. Возможно, я ошибаюсь и что-то уже поменялось, но лет пять назад вариантов не было.

Тем не менее, работа с российской криптографией в BouncyCastle.NET это всё равно интересно, пишите =)

Про что там писать? Только если краткий туториал по подписанию/проверке. Код там вполне стандартный, практически не будет отличаться от работы с "родным" RSA.

Когда делал крипту для маркировки в 2020 в bc java уже была поддержка всех необходимых форматов ключей и подписей. Портанул недостающие куски для net, нужно было понять архитектуру либы в java и net, они разные. Из криптоконтейнера формата крипто про удалось достать отдельно ключ и подписи с помощью проги, которая легко гуглится. Решение работает в кубере линуксовом с тех времен. Скорее всего поизучав еще можно самому криптоконтейнер научиться подгружать формата крипто про. После через пару месяцев видел много нугетов для BC с гост в названии.

Из криптоконтейнера формата крипто про удалось достать отдельно ключ и подписи с помощью проги, которая легко гуглится

Речь про P12FromGostCSP? Она работает только если на контейнере стоит признак "экспортируемый". Если ключ помечен как неэкспортируемый, то это уже проблема (пробегали решения в виде чтения файлов ключа через доступ к файловой системе токена через PKCS#11 с последующим дешифрованием контейнера уже в памяти ПК). А если ещё и лежит на нормальном носителе, типа Рутокен ЭЦП (не lite), а это, на секунду, все ключи руководителей юрлиц, выдаваемые налоговой, то ничем их оттуда не извлечь.

В самой либе BC для .NET поддержку подписи по ГОСТ Р 34.10-2012 довели до ума только осенью 2022, когда она стала нормально работать с CMS (до этого были кастомные форки, сам такой делал, благо, это уже не нужно).

Увы, у меня не было подобных задач под Linux. А под Windows сталкиваюсь с ними не так уж и редко. Поэтому не заморачиваюсь на тему кроссплатформенности.

Sign up to leave a comment.

Articles