Add SSH key support with libssh2#27
Conversation
zentron
left a comment
There was a problem hiding this comment.
That all looks about right to me.
The main new thing is the dll loading which couldnt have been fun to resolve :D
Would it be right to summarise this PR as involving the following changes?
Dependency Loading
- Adds support for loading DLL from directory
- Updates tests to pull in dll from local directory
Properly exposing method options
- Adds Support for the ListRemoteReferences options
- Adds Push remote progress
Certificate Handling
- Adds the cred_ssh_key callbacks to allow resolving keys from C#
- Expose Sha256 of certificate to C#
Would it be worth trying to get at least the method options with a PR upstream?
👍
There is an argument to be made for it, but at the same time the project really hasn't asked for it. |
…ms that do not support openssl3
| // libcrypto.so.1.1 fall back to the OpenSSL-1.1 variant shipped alongside it. We probe | ||
| // both layouts: flat (self-contained publish copies natives next to the assembly) and | ||
| // 'runtimes/<rid>/native/' (framework-dependent / build output). | ||
| if (!NativeLibrary.TryLoad("libcrypto.so.3", out _) && NativeLibrary.TryLoad("libcrypto.so.1.1", out _)) |
There was a problem hiding this comment.
Check that .net doens't already know about which ssl v we're using
Follows on from #26 and includes a version of the native binaries that includes support for SSH utilising libssh2 (which gives us in memory SSH authentication).
The upstream maintainers have expressed that they do not want to support this using libssh2, so this will not be merged upstream.
Closes MD-1601