637 Commits

Author SHA1 Message Date
Wojciech Nagórski 2bbfee4a37 Release 2023.0.0 (#1201)
* Assets/logos (#782)

* Added logo assets

* Added PNG 1260x640 with white border

Co-authored-by: 103filgualan <f.gualandi@crif.com>

* OPENSSH KeyReader for more keys (#614)

* OPENSSH KeyReader for more keys

Add support to parse OpenSSH Keys with ECDSA 256/384/521 and RSA.

https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key

Change-Id: Iaa9cce0f2522e5fee377a82cb252f81f0b7cc563

* Fix ED25519Key KeyLength

* Fix ED25519 PubKey-auth

LeadingZeros of BigInteger-Conversion have to be removed
before sending the Key.

* Add interface to SftpFile #120 (#812)

* Create ISftpFile interface. SftpFile sealed. Return ISftpFile from SftpClient instead of SftpFile. Make ISftpClient interface disposable.

Co-authored-by: Wojciech Swieboda <wswieboda@chathamfinancial.com>

* Start MessageListener with ThreadAbstraction.ExecuteThreadLongRunning (#902)

* Fix Thread pool exhaustion due to MessageListener running on ThreadPool
* Mark long running thread as background

* Add async support to SftpClient and SftpFileStream (#819)

* Add FEATURE_TAP and net472 target
* Add TAP async support to SftpClient and SftpFileStream
* Add async support to DnsAbstraction and SocketAbstraction
* Add async support to *Connector and refactor the hierarchy
* Add ConnectAsync to BaseClient

* Add CODEOWNERS file.

* Fix virus false-positive by Defender on Renci.SSHNet.Tests.dll (#867)

Co-authored-by: Pedro Fonseca <pfonseca@qti.qualcomm.com>

* Add unit tests for task-based asynchronous API (#906)

* Fix runtime and culture dependant tests.
* Set C# 7.3 in Tests.csproj to limit intellisense's suggestions under different targets
* Add SftpClientTest.*Async
* Add SftpFileStreamTest_OpenAsync_*
* Add SftpFileStreamTest_WriteAsync_*
* Add SftpFileStreamTest_ReadAsync_*
* Align AppVeyor script with Test project target frameworks

* correct 'Documenation' to 'Documentation' (#838)

in the documentation's window title

* Agent auth and Keygen (#794)

* Allow to set PrivateKeyFile Key directly
   So you can add your own Key-Classes to SSH.NET
* Add ED25519 ctor for just pub key part.
* Make ECDSA Key Bits accessible
   You cant export imported CngKeys. To be able to export them to agent or Key-Files make the private bits also accessible.
* Better NETFRAMEWORK vs NETSTANDARD handling
* Add Comment Property to Key
* Add IPrivateKeySource
  So Extension can add own PrivateKeyFiles, e.g. PuttyKeyFile.

* Use cryptographically secure random number generator.
Fixes CVE-2022-29245.

* Remove unused import.

* Add IBaseClient for BaseClient and ISftpClient to inherit from (#975)

Add IBaseClient for BaseClient and ISftpClient to inherit from

* fix typo (#999)

* Fix Seek Operations in SftpFileStream (#910)

* Fix offset operations in SftpFileStream.Seek
* Fix seek exception message and add default case for invalid seek origin
* Use named params when throwing ArgumentException
* Add tests for seeking from end of file

* Add back copyright to license. (#1060)

Fixes #1059.

* Removing old target frameworks (#1109)

Remove support for legacy / deprecated target frameworks while adding support for .NET 6.0 (and higher).
The supported target frameworks are now:
* .NETFramework 4.6.2 (and higher)
* .NET Standard 2.0
* .NET 6.0 (and higher)

* Remove old features [Part 1] (#1117)

Remove obsolete feature switches (now that we've remove support for legacy target frameworks) and remove corresponding conditional code.

* Remove FEATURE_DIRECTORYINFO_ENUMERATEFILES (#1119)

* Remove FEATURE_DIRECTORYINFO_ENUMERATEFILES
* Add exception documentation

* Fix some (lots of) issues reported by analyzers. (#1125)

Fix some (lots of) issues reported by analyzers.

* Round 2 of analyzer fixes and general cleanup. (#1132)

* Analyzer fixes round 3. (#1135)

* Replace Array<T>.Empty with Array.Empty<T>() (#1137)

* Replace IsNullOrWhiteSpace extension (#1142)

* Use License Expression for NuGet Package

licenseUrl is deprecated, see https://github.com/NuGet/Announcements/issues/32

* Integration tests

* Remove todos

* Update CODEOWNERS

* Use correct SSH.NET

* ListDirectoryAsync return IAsyncEnumerable (#1126)

* ListDirectoryAsync return IAsyncEnumerable

* Fix documentation

* Update README.md

* Fix

* Add Sftp ListDirectoryAsync test

* Revert

* Integration tests for ListDirectoryAsync with IAsyncEnumerable

* Fix the assembly resolution build warning (#1165)

* Delete performance/longrunning tests (#1143)

Co-authored-by: Wojciech Nagórski <wojtpl2@gmail.com>

* Move Integration tests (#1173)

* Renci.SshNet.IntegrationTests

* Renci.SshNet.TestTools.OpenSSH

* Move integration tests to main repo

* Move old tests to new integration tests

* Move old integration tests to new integration tests

* Move more tests

* Move authentication tests

* Move SshClientTests

* Fix some tests

* Remove duplicated test

* Poc of ProcessDisruptor

* Rename

* Some fixes

* Remove performance tests

* Small improvements

* Add a benchmarks project (#1151)

* Add a benchmarks project

* Small improvements

---------

Co-authored-by: Wojciech Nagórski <wojtpl2@gmail.com>

* Use ExceptionDispatchInfo to retain call stack in Session.WaitOnHandle() (#936)

* Use ExceptionDispatchInfo to retain call stack in Session.WaitOnHandle()

* merge

* Update src/Renci.SshNet/Session.cs

Co-authored-by: Rob Hague <rob.hague00@gmail.com>

---------

Co-authored-by: Wojciech Nagórski <wojtpl2@gmail.com>
Co-authored-by: Rob Hague <rob.hague00@gmail.com>

* Support SHA256 fingerprints for host key validation (#1098)

* Add tests for HostKeyEventArgs

* Add SHA256 fingerprint support

* Add support for RSA SHA-2 public key algorithms (#1177)

* Abstract out the hash algorithm from RsaDigitalSignature

* Add integration tests

* Add DigitalSignature property to KeyHostAlgorithm

* Add IHostAlgorithmsProvider interface

* Verify the host signature

* Fix HostKeyEventArgsTest after merge

* Remove PubkeyAcceptedAlgorithms ssh-rsa

* Add test coverage for RSA keys in PrivateKeyFile

* Obsolete IPrivateKeySource

---------

Co-authored-by: Wojciech Nagórski <wojtpl2@gmail.com>

* Improvements after #1177 (#1180)

* Use ExceptionDispatchInfo in more places (#1182)

Co-authored-by: Wojciech Nagórski <wojtpl2@gmail.com>

* Try to "fix" the flaky test (#1185)

* Enable DSA tests (#1181)

Co-authored-by: Wojciech Nagórski <wojtpl2@gmail.com>

* FingerPrints (#1186)

* Use OS-agnostic socket error codes to allow tests run on different OSes (#1179)

SocketErrorCode is OS agnostic, ErrorCode is OS specific.

On Windows ErrorCode = (int) SocketErrorCode, but on Mac and Unix it is not.

For example ExitCode for HostNotFound (11001) on Windows is 11001, on Mac & Unix is -131073. So testing for ExitCode == 11001 fails on Mac & Unix.

Co-authored-by: Wojciech Nagórski <wojtpl2@gmail.com>

* Fix for channel session semaphore from thread blocking (#1071)

* Merging fix from @clivetong into our own SSH.NET fork
- The following article describes some of the issues with the double check lock that we have seen issues with: https://www.sudhanshutheone.com/posts/double-check-lock-csharp

* Merging fix from @clivetong into our own SSH.NET fork
- The following article describes some of the issues with the double check lock that we have seen issues with: https://www.sudhanshutheone.com/posts/double-check-lock-csharp

* Update Channel to fix AppVeyor failure (field should be readonly)

* Update ISftpClient for #120 (#1193)

* Implement set last write and access time (#1194)

* Add/migrate hmac+cipher integration tests (#1189)

* Add/migrate hmac+cipher integration tests

* fix integration tests

---------

Co-authored-by: Wojciech Nagórski <wojtpl2@gmail.com>

* Update tests for SetLastAccessTime(Utc) to also verify the time component and the Kind of the DateTime value returned by GetLastAccessTime(Utc). (#1198)

---------

Co-authored-by: Filippo Gualandi <filippo.gualandi@gmail.com>
Co-authored-by: 103filgualan <f.gualandi@crif.com>
Co-authored-by: Stefan Rinkes <darinkes@users.noreply.github.com>
Co-authored-by: wxtsxt <wojciech.swieboda@gmail.com>
Co-authored-by: Wojciech Swieboda <wswieboda@chathamfinancial.com>
Co-authored-by: Igor Milavec <igor.milavec@gmail.com>
Co-authored-by: drieseng <gert.driesen@telenet.be>
Co-authored-by: Pedro Fonseca <pbfonseca@gmail.com>
Co-authored-by: Pedro Fonseca <pfonseca@qti.qualcomm.com>
Co-authored-by: Maximiliano Jabase <maxijabase@gmail.com>
Co-authored-by: Owen Krueger <37021716+Owen-Krueger@users.noreply.github.com>
Co-authored-by: Masuri <psh0258@gmail.com>
Co-authored-by: LemonPi314 <49930425+LemonPi314@users.noreply.github.com>
Co-authored-by: Gert Driesen <gertdriesen@msn.com>
Co-authored-by: Rob Hague <rob.hague00@gmail.com>
Co-authored-by: Rob Hague <rh@johnstreetcapital.com>
Co-authored-by: Marius Thesing <marius.thesing@gmail.com>
Co-authored-by: Dāvis Mošenkovs <davikovs@gmail.com>
Co-authored-by: Dmitry Tsarevich <dimhotepus@users.noreply.github.com>
Co-authored-by: Patrick Yates <114094360+patrick-yates-redgate@users.noreply.github.com>
2023-10-10 21:32:33 +02:00
drieseng 4cdedf6524 Use cryptographically secure random number generator.
Fixes CVE-2022-29245.
2022-05-29 16:59:38 +02:00
drieseng acda1431d2 Prepare for 2020.0.1 release 2021-01-24 14:40:24 +01:00
drieseng a06522c3d6 Merge branch 'develop' 2021-01-24 14:38:33 +01:00
drieseng 91b64585bc Support LF as line ending for banner and identification string
Fixes #761
2021-01-12 19:31:25 +01:00
drieseng f48093713f Merge branch 'develop' 2020-12-31 14:02:11 +01:00
drieseng a620835c69 Support our legacy target frameworks. 2020-12-31 14:01:35 +01:00
drieseng 853ec99609 Prepare for 2020.0.0 release. 2020-12-31 13:06:47 +01:00
drieseng 8737fdb386 Merge branch 'develop' 2020-12-31 11:47:24 +01:00
drieseng 008556205b Allow for a small marging when verifying whether configured timeout was respected. 2020-12-31 11:37:18 +01:00
drieseng 84b9281149 Merge branch 'develop' 2020-12-30 22:28:44 +01:00
drieseng 41e378cfc0 Fix test. 2020-12-30 22:12:54 +01:00
drieseng 767fafbfc1 Improve exception messages further. 2020-12-30 21:19:30 +01:00
drieseng f60f24fb9c Fix more tests to pass on .NET Core. 2020-12-30 16:06:24 +01:00
drieseng a5148aea1a Fix some test failures on .NET Core. 2020-12-30 15:13:57 +01:00
drieseng d5fefcc369 Fix and rename test. 2020-12-30 13:13:20 +01:00
drieseng e8db68c371 Improve exception messages. 2020-12-30 11:44:25 +01:00
drieseng 8d485f918b Remove unused import. 2020-12-30 11:43:35 +01:00
drieseng f09496b782 Fix remaining test failure. 2020-12-29 20:22:10 +01:00
drieseng 43f18cb3d4 Fix test failures. 2020-12-29 20:13:19 +01:00
drieseng 60be75d85c Complete refactoring of connection process, and greatly improve test coverage. 2020-12-29 20:01:28 +01:00
drieseng e0b32a41ea Add Connect overload that takes existing Socket instance. 2020-12-29 19:53:46 +01:00
drieseng de06f12350 Allow for easier troubleshooting of protocol version exchange.
Fixes #751.
2020-12-29 18:56:26 +01:00
drieseng eefcd8fbc5 Fix test failure. 2020-12-27 12:16:49 +01:00
drieseng fbadaf8b74 Fix handling of empty line. 2020-12-27 12:06:36 +01:00
drieseng e71a4c958d Update tests after connection refactoring. 2020-12-27 11:52:12 +01:00
drieseng a1e4e04e04 Revert back to using SocketShutdown.Send in an attempt to stabilize tests. 2020-12-27 10:37:30 +01:00
drieseng dc9c637759 Refactor how connection is established to server. 2020-12-27 10:20:03 +01:00
Eric Brumfield cefdc203d9 Add ISftpClient interface to SftpClient (#197)
Add ISftpClient interface to **SftpClient for mocking and testing purposes.
Fixes #193.
2020-07-19 18:49:12 +02:00
Bill Menees 90a13a6c5a Fix SFTP file UTC time handling (#356)
* Improved SFTP file UTC time handling
2020-07-18 10:59:30 +02:00
drieseng 32f2615795 Fix path to source file. 2020-06-07 15:32:32 +02:00
drieseng 638a30c521 Fix path to source file. 2020-06-07 15:31:29 +02:00
drieseng e9979a6adc Merge remote-tracking branch 'remotes/origin/develop'
# Conflicts:
#	build/sandcastle/SSH.NET.shfbproj
2020-06-07 15:25:33 +02:00
drieseng b5dcca911a Update path to example. 2020-06-07 15:23:11 +02:00
drieseng 66cf838d26 Prepare for 2020.0.0-beta1 2020-06-07 10:54:50 +02:00
drieseng cca8255255 Merge remote-tracking branch 'remotes/origin/develop' 2020-06-01 09:59:56 +02:00
drieseng 8fbaa3c5bc Remove stray CWL. 2020-06-01 09:58:31 +02:00
drieseng c5cb1caf76 Merge branch 'develop' of https://github.com/sshnet/SSH.NET into develop 2020-06-01 09:53:22 +02:00
drieseng 4906b64e7a Immediately sent identification string when connection is established.
Fixes #689.
2020-06-01 09:52:49 +02:00
Gert Driesen e44913029e Synchronize legacy project files. 2020-05-03 21:18:49 +02:00
Gert Driesen 42a676c3d7 Support TF without Socket.Poll(...) and Socket.Select(...). 2020-05-03 21:15:09 +02:00
drieseng 7bbb7a0ca3 Remove CWLs. 2020-05-03 17:50:22 +02:00
drieseng 4583da528f Remove CWLs. 2020-05-03 17:46:40 +02:00
drieseng 23168f47b3 Merge remote-tracking branch 'remotes/origin/develop' 2020-05-03 17:38:22 +02:00
drieseng c5b487c057 Fix tests. 2020-05-03 17:37:48 +02:00
drieseng 8094c0917a Handle ObjectDisposedException. 2020-05-03 14:11:08 +02:00
drieseng fc114fb0ec Merge remote-tracking branch 'remotes/origin/develop' 2020-05-03 13:19:21 +02:00
drieseng 504d1dc035 Prefer Socket.Poll(...) over Socket.Select(...).
Fixes #355.
2020-05-03 13:10:30 +02:00
drieseng cdbdefe449 Remove unused FEATURE_SOCKET_SETSOCKETOPTION. 2020-05-03 10:45:10 +02:00
drieseng 14ddfca4e9 Fix test failures 2020-04-30 13:20:49 +02:00