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

Third party libraries #1271

Open
WojciechNagorski opened this issue Dec 10, 2023 · 5 comments
Open

Third party libraries #1271

WojciechNagorski opened this issue Dec 10, 2023 · 5 comments

Comments

@WojciechNagorski
Copy link
Collaborator

Does anyone know why SSH.NET uses copies of third-party libraries:

source of information: #496 (comment)

I wonder if it would be better to use Nuget. We would receive security updates, bug fixes, and optimizations.

I looked through the code coverage and for the most part, the copied code is not covered by tests.

@scott-xu @Rob-Hague @drieseng @jacobslusser

@Rob-Hague
Copy link
Collaborator

I don't know why it was copied, but one possible explanation and downside of using the nuget package: the bouncycastle binary is nearly 7 megabytes.

The size wouldn't be a blocker for me (I would prefer the nuget). I imagine we wouldn't need Chaos.NaCl: I think bouncycastle could be used for Ed25519

I looked through the code coverage and for the most part, the copied code is not covered by tests.

Most of the internal code is unused: #1140

@Rob-Hague
Copy link
Collaborator

cc @darinkes

@jacobslusser
Copy link
Contributor

@WojciechNagorski, I think you raise an excellent question. If we are counting votes, I would be in favor of using the third-party nuget packages instead of copying the code.

@darinkes
Copy link
Collaborator

darinkes commented Dec 11, 2023

At that time there were no usable NuGets (Chaos.NaCl still hasnt) and BouncyCastle is a huge bloat we just needed a very small part of. Thats why we went the route to import only needed stuff.

@drieseng
Copy link
Member

I'm ok with switching to NuGet.

I suppose the reasons for including the source code were:

  • Reduce the number of - direct or indirect - dependencies to the absolute minimum hereby avoid dll/assembly hell.
  • Reduce the on-disk foodprint of SSH.NET.
  • Support for legacy target frameworks.

Perhaps the last one was - at that time - the most important reason.

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