From 7436a38b7827c50325aa66c78b8b6800f94a813f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20Nag=C3=B3rski?= Date: Fri, 29 Dec 2023 07:45:20 +0100 Subject: [PATCH] Remove code examples (#1210) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Release 2023.0.0 (#1201) * Assets/logos (#782) * Added logo assets * Added PNG 1260x640 with white border Co-authored-by: 103filgualan * 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 * 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 * 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.Empty with Array.Empty() (#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 * 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 * 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 --------- Co-authored-by: Wojciech Nagórski Co-authored-by: Rob Hague * 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 * Improvements after #1177 (#1180) * Use ExceptionDispatchInfo in more places (#1182) Co-authored-by: Wojciech Nagórski * Try to "fix" the flaky test (#1185) * Enable DSA tests (#1181) Co-authored-by: Wojciech Nagórski * 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 * 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 * 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 Co-authored-by: 103filgualan Co-authored-by: Stefan Rinkes Co-authored-by: wxtsxt Co-authored-by: Wojciech Swieboda Co-authored-by: Igor Milavec Co-authored-by: drieseng Co-authored-by: Pedro Fonseca Co-authored-by: Pedro Fonseca Co-authored-by: Maximiliano Jabase Co-authored-by: Owen Krueger <37021716+Owen-Krueger@users.noreply.github.com> Co-authored-by: Masuri Co-authored-by: LemonPi314 <49930425+LemonPi314@users.noreply.github.com> Co-authored-by: Gert Driesen Co-authored-by: Rob Hague Co-authored-by: Rob Hague Co-authored-by: Marius Thesing Co-authored-by: Dāvis Mošenkovs Co-authored-by: Dmitry Tsarevich Co-authored-by: Patrick Yates <114094360+patrick-yates-redgate@users.noreply.github.com> * Remove code examples --------- Co-authored-by: Filippo Gualandi Co-authored-by: 103filgualan Co-authored-by: Stefan Rinkes Co-authored-by: wxtsxt Co-authored-by: Wojciech Swieboda Co-authored-by: Igor Milavec Co-authored-by: drieseng Co-authored-by: Pedro Fonseca Co-authored-by: Pedro Fonseca Co-authored-by: Maximiliano Jabase Co-authored-by: Owen Krueger <37021716+Owen-Krueger@users.noreply.github.com> Co-authored-by: Masuri Co-authored-by: LemonPi314 <49930425+LemonPi314@users.noreply.github.com> Co-authored-by: Gert Driesen Co-authored-by: Rob Hague Co-authored-by: Rob Hague Co-authored-by: Marius Thesing Co-authored-by: Dāvis Mošenkovs Co-authored-by: Dmitry Tsarevich Co-authored-by: Patrick Yates <114094360+patrick-yates-redgate@users.noreply.github.com> --- src/Renci.SshNet/BaseClient.cs | 6 ---- src/Renci.SshNet/ConnectionInfo.cs | 6 ---- src/Renci.SshNet/ForwardedPortLocal.cs | 3 -- src/Renci.SshNet/ForwardedPortRemote.cs | 3 -- src/Renci.SshNet/IBaseClient.cs | 6 ---- src/Renci.SshNet/IConnectionInfo.cs | 3 -- .../KeyboardInteractiveConnectionInfo.cs | 6 ---- src/Renci.SshNet/PasswordConnectionInfo.cs | 11 ------- src/Renci.SshNet/PrivateKeyConnectionInfo.cs | 7 ----- src/Renci.SshNet/PrivateKeyFile.cs | 3 -- src/Renci.SshNet/SshClient.cs | 25 ---------------- src/Renci.SshNet/SshCommand.cs | 29 ------------------- 12 files changed, 108 deletions(-) diff --git a/src/Renci.SshNet/BaseClient.cs b/src/Renci.SshNet/BaseClient.cs index bdfd5cb5f..56d2145cc 100644 --- a/src/Renci.SshNet/BaseClient.cs +++ b/src/Renci.SshNet/BaseClient.cs @@ -140,17 +140,11 @@ public TimeSpan KeepAliveInterval /// /// Occurs when an error occurred. /// - /// - /// - /// public event EventHandler ErrorOccurred; /// /// Occurs when host key received. /// - /// - /// - /// public event EventHandler HostKeyReceived; /// diff --git a/src/Renci.SshNet/ConnectionInfo.cs b/src/Renci.SshNet/ConnectionInfo.cs index 7eccb8dff..721a45762 100644 --- a/src/Renci.SshNet/ConnectionInfo.cs +++ b/src/Renci.SshNet/ConnectionInfo.cs @@ -144,9 +144,6 @@ public class ConnectionInfo : IConnectionInfoInternal /// /// The connection timeout. The default value is 30 seconds. /// - /// - /// - /// public TimeSpan Timeout { get; set; } /// @@ -190,9 +187,6 @@ public class ConnectionInfo : IConnectionInfoInternal /// /// Occurs when authentication banner is sent by the server. /// - /// - /// - /// public event EventHandler AuthenticationBanner; /// diff --git a/src/Renci.SshNet/ForwardedPortLocal.cs b/src/Renci.SshNet/ForwardedPortLocal.cs index 3d5b58768..72bf08dc7 100644 --- a/src/Renci.SshNet/ForwardedPortLocal.cs +++ b/src/Renci.SshNet/ForwardedPortLocal.cs @@ -58,9 +58,6 @@ public override bool IsStarted /// is greater than . /// is . /// is greater than . - /// - /// - /// public ForwardedPortLocal(uint boundPort, string host, uint port) : this(string.Empty, boundPort, host, port) { diff --git a/src/Renci.SshNet/ForwardedPortRemote.cs b/src/Renci.SshNet/ForwardedPortRemote.cs index af7fd48a2..1b4a74eb4 100644 --- a/src/Renci.SshNet/ForwardedPortRemote.cs +++ b/src/Renci.SshNet/ForwardedPortRemote.cs @@ -112,9 +112,6 @@ public ForwardedPortRemote(IPAddress boundHostAddress, uint boundPort, IPAddress /// The bound port. /// The host. /// The port. - /// - /// - /// public ForwardedPortRemote(uint boundPort, string host, uint port) : this(string.Empty, boundPort, host, port) { diff --git a/src/Renci.SshNet/IBaseClient.cs b/src/Renci.SshNet/IBaseClient.cs index add066f73..c42df3426 100644 --- a/src/Renci.SshNet/IBaseClient.cs +++ b/src/Renci.SshNet/IBaseClient.cs @@ -43,17 +43,11 @@ public interface IBaseClient : IDisposable /// /// Occurs when an error occurred. /// - /// - /// - /// event EventHandler ErrorOccurred; /// /// Occurs when host key received. /// - /// - /// - /// event EventHandler HostKeyReceived; /// diff --git a/src/Renci.SshNet/IConnectionInfo.cs b/src/Renci.SshNet/IConnectionInfo.cs index a0f2898ef..35dabcc2f 100644 --- a/src/Renci.SshNet/IConnectionInfo.cs +++ b/src/Renci.SshNet/IConnectionInfo.cs @@ -98,9 +98,6 @@ internal interface IConnectionInfo /// /// The connection timeout. The default value is 30 seconds. /// - /// - /// - /// TimeSpan Timeout { get; } /// diff --git a/src/Renci.SshNet/KeyboardInteractiveConnectionInfo.cs b/src/Renci.SshNet/KeyboardInteractiveConnectionInfo.cs index 2d3825b3f..a2738796a 100644 --- a/src/Renci.SshNet/KeyboardInteractiveConnectionInfo.cs +++ b/src/Renci.SshNet/KeyboardInteractiveConnectionInfo.cs @@ -6,9 +6,6 @@ namespace Renci.SshNet /// /// Provides connection information when keyboard interactive authentication method is used. /// - /// - /// - /// public class KeyboardInteractiveConnectionInfo : ConnectionInfo, IDisposable { private bool _isDisposed; @@ -16,9 +13,6 @@ public class KeyboardInteractiveConnectionInfo : ConnectionInfo, IDisposable /// /// Occurs when server prompts for more authentication information. /// - /// - /// - /// public event EventHandler AuthenticationPrompt; /// diff --git a/src/Renci.SshNet/PasswordConnectionInfo.cs b/src/Renci.SshNet/PasswordConnectionInfo.cs index 08ef59dea..072b32147 100644 --- a/src/Renci.SshNet/PasswordConnectionInfo.cs +++ b/src/Renci.SshNet/PasswordConnectionInfo.cs @@ -8,11 +8,6 @@ namespace Renci.SshNet /// /// Provides connection information when password authentication method is used. /// - /// - /// - /// - /// - /// public class PasswordConnectionInfo : ConnectionInfo, IDisposable { private bool _isDisposed; @@ -20,9 +15,6 @@ public class PasswordConnectionInfo : ConnectionInfo, IDisposable /// /// Occurs when user's password has expired and needs to be changed. /// - /// - /// - /// public event EventHandler PasswordExpired; /// @@ -31,9 +23,6 @@ public class PasswordConnectionInfo : ConnectionInfo, IDisposable /// Connection host. /// Connection username. /// Connection password. - /// - /// - /// /// is . /// is invalid, or is or contains only whitespace characters. public PasswordConnectionInfo(string host, string username, string password) diff --git a/src/Renci.SshNet/PrivateKeyConnectionInfo.cs b/src/Renci.SshNet/PrivateKeyConnectionInfo.cs index ecd0bbb8a..dacfc36b1 100644 --- a/src/Renci.SshNet/PrivateKeyConnectionInfo.cs +++ b/src/Renci.SshNet/PrivateKeyConnectionInfo.cs @@ -7,9 +7,6 @@ namespace Renci.SshNet /// /// Provides connection information when private key authentication method is used. /// - /// - /// - /// public class PrivateKeyConnectionInfo : ConnectionInfo, IDisposable { private bool _isDisposed; @@ -25,10 +22,6 @@ public class PrivateKeyConnectionInfo : ConnectionInfo, IDisposable /// Connection host. /// Connection username. /// Connection key files. - /// - /// - /// - /// public PrivateKeyConnectionInfo(string host, string username, params PrivateKeyFile[] keyFiles) : this(host, DefaultPort, username, ProxyTypes.None, string.Empty, 0, string.Empty, string.Empty, keyFiles) { diff --git a/src/Renci.SshNet/PrivateKeyFile.cs b/src/Renci.SshNet/PrivateKeyFile.cs index 9f6d728bc..d42594583 100644 --- a/src/Renci.SshNet/PrivateKeyFile.cs +++ b/src/Renci.SshNet/PrivateKeyFile.cs @@ -20,9 +20,6 @@ namespace Renci.SshNet /// /// Represents private key information. /// - /// - /// - /// /// /// /// The following private keys are supported: diff --git a/src/Renci.SshNet/SshClient.cs b/src/Renci.SshNet/SshClient.cs index 753ab8f9f..2e1103553 100644 --- a/src/Renci.SshNet/SshClient.cs +++ b/src/Renci.SshNet/SshClient.cs @@ -44,12 +44,6 @@ public IEnumerable ForwardedPorts /// Initializes a new instance of the class. /// /// The connection info. - /// - /// - /// - /// - /// - /// /// is . public SshClient(ConnectionInfo connectionInfo) : this(connectionInfo, ownsConnectionInfo: false) @@ -80,9 +74,6 @@ public SshClient(string host, int port, string username, string password) /// Connection host. /// Authentication username. /// Authentication password. - /// - /// - /// /// is . /// is invalid, or is or contains only whitespace characters. public SshClient(string host, string username, string password) @@ -97,10 +88,6 @@ public SshClient(string host, string username, string password) /// Connection port. /// Authentication username. /// Authentication private key file(s) . - /// - /// - /// - /// /// is . /// is invalid, -or- is or contains only whitespace characters. /// is not within and . @@ -116,10 +103,6 @@ public SshClient(string host, int port, string username, params IPrivateKeySourc /// Connection host. /// Authentication username. /// Authentication private key file(s) . - /// - /// - /// - /// /// is . /// is invalid, -or- is or contains only whitespace characters. public SshClient(string host, string username, params IPrivateKeySource[] keyFiles) @@ -177,10 +160,6 @@ protected override void OnDisconnecting() /// Adds the forwarded port. /// /// The port. - /// - /// - /// - /// /// Forwarded port is already added to a different client. /// is . /// Client is not connected. @@ -265,10 +244,6 @@ public SshCommand CreateCommand(string commandText, Encoding encoding) /// The command text. /// Returns an instance of with execution results. /// This method internally uses asynchronous calls. - /// - /// - /// - /// /// CommandText property is empty. /// Invalid Operation - An existing channel was used to execute this command. /// Asynchronous operation is already in progress. diff --git a/src/Renci.SshNet/SshCommand.cs b/src/Renci.SshNet/SshCommand.cs index 5b93354f7..a7769ab2c 100644 --- a/src/Renci.SshNet/SshCommand.cs +++ b/src/Renci.SshNet/SshCommand.cs @@ -43,25 +43,16 @@ public class SshCommand : IDisposable /// /// The command timeout. /// - /// - /// - /// public TimeSpan CommandTimeout { get; set; } /// /// Gets the command exit status. /// - /// - /// - /// public int ExitStatus { get; private set; } /// /// Gets the output stream. /// - /// - /// - /// #pragma warning disable CA1859 // Use concrete types when possible for improved performance public Stream OutputStream { get; private set; } #pragma warning restore CA1859 // Use concrete types when possible for improved performance @@ -69,9 +60,6 @@ public class SshCommand : IDisposable /// /// Gets the extended output stream. /// - /// - /// - /// #pragma warning disable CA1859 // Use concrete types when possible for improved performance public Stream ExtendedOutputStream { get; private set; } #pragma warning restore CA1859 // Use concrete types when possible for improved performance @@ -79,9 +67,6 @@ public class SshCommand : IDisposable /// /// Gets the command execution result. /// - /// - /// - /// public string Result { get @@ -107,9 +92,6 @@ public string Result /// /// Gets the command execution error. /// - /// - /// - /// public string Error { get @@ -177,9 +159,6 @@ internal SshCommand(ISession session, string commandText, Encoding encoding) /// /// An that represents the asynchronous command execution, which could still be pending. /// - /// - /// - /// /// Asynchronous operation is already in progress. /// Invalid operation. /// CommandText property is empty. @@ -301,9 +280,6 @@ public IAsyncResult BeginExecute(string commandText, AsyncCallback callback, obj /// /// The reference to the pending asynchronous request to finish. /// Command execution result. - /// - /// - /// /// Either the IAsyncResult object did not come from the corresponding async method on this type, or EndExecute was called multiple times with the same IAsyncResult. /// is . public string EndExecute(IAsyncResult asyncResult) @@ -355,11 +331,6 @@ public void CancelAsync() /// /// Command execution result. /// - /// - /// - /// - /// - /// /// Client is not connected. /// Operation has timed out. public string Execute()