Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Реализация под Net 5 #40

Open
AlexAlexKud opened this issue Jul 12, 2021 · 7 comments
Open

Реализация под Net 5 #40

AlexAlexKud opened this issue Jul 12, 2021 · 7 comments

Comments

@AlexAlexKud
Copy link

AlexAlexKud commented Jul 12, 2021

Хотим переехать на новую платформу, а не можем из-за отсутствия GostCryptography...
Очень прошу рассмотреть возможность портировать библиотеку под Net 5. или .Net Core

@AlexMAS
Copy link
Owner

AlexMAS commented Jul 13, 2021

Здравствуйте. Вопрос в проработке, надеюсь, что все получится :)

@sa13m
Copy link

sa13m commented Dec 12, 2021

Есть продвижения в данном вопроса? Может сделаете нам подарок к новому году?)

@AlexMAS
Copy link
Owner

AlexMAS commented Dec 13, 2021

Да, стараюсь :) Многие вещи получилось сделать, некоторые идут совсем с трудом, но думаю, что все получится. Все никак не могу урвать время, чтобы оформить существующие наработки.

@DmitryKrakhmalev
Copy link

Добрый день. Тоже столкнулся с ошибкой "Unknown algorithm '1.2.643.7.1.1.1.1". В проекте используется .Net 5.0. Я так понял вы как раз и занимаетесь этой проблемой в новом обновлении под .Net 5.0?
Я не очень хорошо разбираюсь в работе с ЭЦП.
Передо мной стоит задача валидации подписанных данных (хэш полей карточки документа). Данные подписываются с клиентской стороны с использованием crypto pro. Я так понимаю что у меня не получится проверить подпись пока не выйдет обновление?

@AlexMAS
Copy link
Owner

AlexMAS commented Dec 24, 2021

С появлением .NET Core реализация базовых абстракций для работы с криптографией существенно изменилась. Разработчикам .NET нужно было обеспечить работу криптографии на многих платформах (не только Windows). Они отказались от жесткой привязки к Crypto API, беря большую часть работы на себя. При этом для .NET разработчиков ничего не изменилось, поменялись только внутренности. При этом с точки зрения объема и формы предоставляемой функциональности для работы с криптографией ничего не изменилось. Но в этом и суть основной проблемы для данной библиотеки.

Механизмы криптографии в .NET не позволяют (до сих пор) делать какое-либо функциональное расширение. Например, добавить поддержку криптографии по ГОСТ. В связи с этим реализация библиотеки достаточно сильно завязана на внутреннее устройство самого .NET. И это является основной причиной "тормоза" в переходе на новые версии платформы. Просто так взять исходники, собрать и запустить их под .NET 5+ не получится по указанным причинам. Сборка может и пройдет, но ничего не заработает. Сейчас, да, я худо-бедно стараюсь перевести существующую кодовую базу на .NET 5+.

Пока я могу предложить вам такие варианты на выбор:

  • Сделать отдельный микросервис на базе .NET Framework 4.8
  • Сделать отдельную консольную утилиту .NET Framework 4.8

Проверку подписи реализовать в рамках отдельной службы или утилиты и обращаться к ним из своего основного приложения (работающего на .NET 5). После выхода обновления вы сможете сделать проверку in-process.

@Bykiev
Copy link

Bykiev commented Mar 3, 2022

С появлением .NET Core реализация базовых абстракций для работы с криптографией существенно изменилась. Разработчикам .NET нужно было обеспечить работу криптографии на многих платформах (не только Windows). Они отказались от жесткой привязки к Crypto API, беря большую часть работы на себя. При этом для .NET разработчиков ничего не изменилось, поменялись только внутренности. При этом с точки зрения объема и формы предоставляемой функциональности для работы с криптографией ничего не изменилось. Но в этом и суть основной проблемы для данной библиотеки.

Механизмы криптографии в .NET не позволяют (до сих пор) делать какое-либо функциональное расширение. Например, добавить поддержку криптографии по ГОСТ. В связи с этим реализация библиотеки достаточно сильно завязана на внутреннее устройство самого .NET. И это является основной причиной "тормоза" в переходе на новые версии платформы. Просто так взять исходники, собрать и запустить их под .NET 5+ не получится по указанным причинам. Сборка может и пройдет, но ничего не заработает. Сейчас, да, я худо-бедно стараюсь перевести существующую кодовую базу на .NET 5+.

Пока я могу предложить вам такие варианты на выбор:

  • Сделать отдельный микросервис на базе .NET Framework 4.8
  • Сделать отдельную консольную утилиту .NET Framework 4.8

Проверку подписи реализовать в рамках отдельной службы или утилиты и обращаться к ним из своего основного приложения (работающего на .NET 5). После выхода обновления вы сможете сделать проверку in-process.

Александр, правильно ли я понимаю, что на текущее время единственный вариант встраивания ГОСТ под Linux в .NET 5+ - это форк CoreFX и реализация алгоритмов в нем, как сделали CryptoPro?

@Bykiev
Copy link

Bykiev commented Sep 1, 2022

@AlexMAS, здравствуйте! Не могли бы вы использовать для реализации на .NET 6 библиотеку OpenGOST?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants