API Differences between 2025.1.0 and 2023.0.0
	
		240 Additions
	
	
		111 Removals
	
Renci.SshNet
	- 
		public abstract class AuthenticationMethod : IAuthenticationMethod, IDisposable
		
	
 
	- 
		public abstract class BaseClient : IBaseClient, IDisposable
		
	
 
	- 
		public class CipherInfo
		
	
 
	- 
		public class CommandAsyncResult : IAsyncResult
		
	
 
	- 
		public class ConnectionInfo : IConnectionInfoInternal, IConnectionInfo
		
			- public IDictionary<string, Type> CompressionAlgorithms { get; }
 
			- public IOrderedDictionary<string, Func<Compressor>> CompressionAlgorithms { get; }
 
			- public IDictionary<string, CipherInfo> Encryptions { get; }
 
			- public IDictionary<string, HashInfo> HmacAlgorithms { get; }
 
			- public IOrderedDictionary<string, CipherInfo> Encryptions { get; }
 
			- public IOrderedDictionary<string, HashInfo> HmacAlgorithms { get; }
 
			- public IDictionary<string, Func<byte[], KeyHostAlgorithm>> HostKeyAlgorithms { get; }
 
			- public IOrderedDictionary<string, Func<byte[], KeyHostAlgorithm>> HostKeyAlgorithms { get; }
 
			- public IDictionary<string, Type> KeyExchangeAlgorithms { get; }
 
			- public IOrderedDictionary<string, Func<IKeyExchange>> KeyExchangeAlgorithms { get; }
 
			- public ILoggerFactory LoggerFactory { get; set; }
 
		
	 
	- 
		public class ExpectAsyncResult : AsyncResult<string>
		
	
 
	- 
		public abstract class ForwardedPort : IForwardedPort, IDisposable
		
	
 
	- 
		public class ForwardedPortDynamic : ForwardedPort
		
	
 
	- 
		public class ForwardedPortLocal : ForwardedPort
		
	
 
	- 
		public class ForwardedPortRemote : ForwardedPort
		
	
 
	- 
		public class HashInfo
		
	
 
	- 
		public interface IBaseClient : IDisposable
		
	
 
	- 
		public interface IOrderedDictionary<TKey, TValue> : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable, IReadOnlyDictionary<TKey, TValue>, IReadOnlyCollection<KeyValuePair<TKey, TValue>>
		
			- int Count { get; }
 
			- TValue this[TKey key] { get; set; }
 
			- ICollection<TKey> Keys { get; }
 
			- ICollection<TValue> Values { get; }
 
			- bool ContainsKey(TKey key)
 
			- bool ContainsValue(TValue value)
 
			- KeyValuePair<TKey, TValue> GetAt(int index)
 
			- int IndexOf(TKey key)
 
			- void Insert(int index, TKey key, TValue value)
 
			- bool Remove(TKey key, out TValue value)
 
			- void RemoveAt(int index)
 
			- void SetAt(int index, TKey key, TValue value)
 
			- void SetAt(int index, TValue value)
 
			- void SetPosition(int index, int newIndex)
 
			- void SetPosition(TKey key, int newIndex)
 
			- bool TryAdd(TKey key, TValue value)
 
			- bool TryAdd(TKey key, TValue value, out int index)
 
			- bool TryGetValue(TKey key, out TValue value)
 
			- bool TryGetValue(TKey key, out TValue value, out int index)
 
		
	 
	- 
		public interface ISftpClient : IBaseClient, IDisposable
		
			- Task ChangeDirectoryAsync(string path, CancellationToken cancellationToken = default)
 
			- Task CreateDirectoryAsync(string path, CancellationToken cancellationToken = default)
 
			- Task DeleteAsync(string path, CancellationToken cancellationToken = default)
 
			- Task DeleteDirectoryAsync(string path, CancellationToken cancellationToken = default)
 
			- Task DownloadFileAsync(string path, Stream output, CancellationToken cancellationToken = default)
 
			- Task<bool> ExistsAsync(string path, CancellationToken cancellationToken = default)
 
			- Task<ISftpFile> GetAsync(string path, CancellationToken cancellationToken)
 
			- Task<SftpFileAttributes> GetAttributesAsync(string path, CancellationToken cancellationToken)
 
			- SftpFileSytemInformation GetStatus(string path)
 
			- Task<SftpFileSytemInformation> GetStatusAsync(string path, CancellationToken cancellationToken)
 
			- SftpFileSystemInformation GetStatus(string path)
 
			- Task<SftpFileSystemInformation> GetStatusAsync(string path, CancellationToken cancellationToken)
 
			- Task UploadFileAsync(Stream input, string path, CancellationToken cancellationToken = default)
 
		
	 
	- 
		public interface ISshClient : IBaseClient, IDisposable
		
			- IEnumerable<ForwardedPort> ForwardedPorts { get; }
 
			- void AddForwardedPort(ForwardedPort port)
 
			- SshCommand CreateCommand(string commandText)
 
			- SshCommand CreateCommand(string commandText, Encoding encoding)
 
			- Shell CreateShell(Stream input, Stream output, Stream extendedOutput, string terminalName, uint columns, uint rows, uint width, uint height, IDictionary<TerminalModes, uint> terminalModes, int bufferSize)
 
			- Shell CreateShell(Stream input, Stream output, Stream extendedOutput, string terminalName, uint columns, uint rows, uint width, uint height, IDictionary<TerminalModes, uint> terminalModes)
 
			- Shell CreateShell(Stream input, Stream output, Stream extendedOutput)
 
			- Shell CreateShell(Encoding encoding, string input, Stream output, Stream extendedOutput, string terminalName, uint columns, uint rows, uint width, uint height, IDictionary<TerminalModes, uint> terminalModes, int bufferSize)
 
			- Shell CreateShell(Encoding encoding, string input, Stream output, Stream extendedOutput, string terminalName, uint columns, uint rows, uint width, uint height, IDictionary<TerminalModes, uint> terminalModes)
 
			- Shell CreateShell(Encoding encoding, string input, Stream output, Stream extendedOutput)
 
			- Shell CreateShellNoTerminal(Stream input, Stream output, Stream extendedOutput, int bufferSize = -1)
 
			- ShellStream CreateShellStream(string terminalName, uint columns, uint rows, uint width, uint height, int bufferSize)
 
			- ShellStream CreateShellStream(string terminalName, uint columns, uint rows, uint width, uint height, int bufferSize, IDictionary<TerminalModes, uint> terminalModeValues)
 
			- ShellStream CreateShellStreamNoTerminal(int bufferSize = -1)
 
			- void RemoveForwardedPort(ForwardedPort port)
 
			- SshCommand RunCommand(string commandText)
 
		
	 
	- 
		public class KeyboardInteractiveAuthenticationMethod : AuthenticationMethod
		
	
 
	- 
		public class NoneAuthenticationMethod : AuthenticationMethod
		
	
 
	- 
		public class PasswordAuthenticationMethod : AuthenticationMethod
		
	
 
	- 
		public class PrivateKeyAuthenticationMethod : AuthenticationMethod
		
	
 
	- 
		public class PrivateKeyConnectionInfo : ConnectionInfo, IDisposable
		
	
 
	- 
		public class PrivateKeyFile : IPrivateKeySource, IDisposable
		
	
 
	- 
		public class ScpClient : BaseClient
		
	
 
	- 
		public sealed class Session : ISession, IDisposable
		
	
 
	- 
		public class SftpClient : BaseClient, ISftpClient, IBaseClient, IDisposable
		
			- public Task ChangeDirectoryAsync(string path, CancellationToken cancellationToken = default)
 
			- public Task CreateDirectoryAsync(string path, CancellationToken cancellationToken = default)
 
			- public Task DeleteAsync(string path, CancellationToken cancellationToken = default)
 
			- public Task DeleteDirectoryAsync(string path, CancellationToken cancellationToken = default)
 
			- public Task DownloadFileAsync(string path, Stream output, CancellationToken cancellationToken = default)
 
			- public Task<bool> ExistsAsync(string path, CancellationToken cancellationToken = default)
 
			- public Task<ISftpFile> GetAsync(string path, CancellationToken cancellationToken)
 
			- public Task<SftpFileAttributes> GetAttributesAsync(string path, CancellationToken cancellationToken)
 
			- public SftpFileSytemInformation GetStatus(string path)
 
			- public Task<SftpFileSytemInformation> GetStatusAsync(string path, CancellationToken cancellationToken)
 
			- public SftpFileSystemInformation GetStatus(string path)
 
			- public Task<SftpFileSystemInformation> GetStatusAsync(string path, CancellationToken cancellationToken)
 
			- public Task UploadFileAsync(Stream input, string path, CancellationToken cancellationToken = default)
 
		
	 
	- 
		public sealed class Shell : IDisposable
		
			- protected virtual void Dispose(bool disposing)
 
		
	 
	- 
		public sealed class ShellStream : Stream
		
			- public event EventHandler<EventArgs> Closed
 
			- public IAsyncResult BeginExpect(TimeSpan timeout, int lookback, AsyncCallback callback, object state, ExpectAction[] expectActions)
 
			- public void ChangeWindowSize(uint columns, uint rows, uint width, uint height)
 
			- public void Expect(TimeSpan timeout, int lookback, ExpectAction[] expectActions)
 
			- public string Expect(string text, TimeSpan timeout)
 
			- public string Expect(string text, TimeSpan timeout, int lookback = -1)
 
			- public string Expect(Regex regex, TimeSpan timeout)
 
			- public string Expect(Regex regex, TimeSpan timeout, int lookback = -1)
 
		
	 
	- 
		public class SshClient : BaseClient, ISshClient, IBaseClient, IDisposable
		
	
 
	- 
		public sealed class SshCommand : IDisposable
		
	
 
	- 
		public static class SshNetLoggingConfiguration
		
	
 
Renci.SshNet.Common
Renci.SshNet.Compression
Renci.SshNet.Connection
Renci.SshNet.Messages
Renci.SshNet.Messages.Transport
Renci.SshNet.Security
	- 
		public class Certificate
		
	
 
	- 
		public class CertificateHostAlgorithm : KeyHostAlgorithm
		
			- public CertificateHostAlgorithm(string name)
 
			- public Certificate Certificate { get; }
 
			- public CertificateHostAlgorithm(string name, Key privateKey, Certificate certificate)
 
			- public CertificateHostAlgorithm(string name, Key privateKey, Certificate certificate, DigitalSignature digitalSignature)
 
			- public CertificateHostAlgorithm(string name, Certificate certificate, IReadOnlyDictionary<string, Func<byte[], KeyHostAlgorithm>> keyAlgorithms)
 
			- public CertificateHostAlgorithm(string name, Certificate certificate, DigitalSignature digitalSignature, IReadOnlyDictionary<string, Func<byte[], KeyHostAlgorithm>> keyAlgorithms)
 
		
	 
	- 
		public class DsaKey : Key, IDisposable
		
	
 
	- 
		public class EcdsaKey : Key, IDisposable
		
	
 
	- 
		public class ED25519Key : Key, IDisposable
		
	
 
	- 
		public interface IKeyExchange : IDisposable
		
	
 
	- 
		public abstract class Key
		
	
 
	- 
		public abstract class KeyExchange : Algorithm, IKeyExchange, IDisposable
		
	
 
	- 
		public class KeyExchangeDiffieHellman : KeyExchange
		
	
 
	- 
		public class KeyExchangeDiffieHellmanGroupExchange : KeyExchange
		
	
 
	- 
		public class KeyHostAlgorithm : HostAlgorithm
		
	
 
	- 
		public class RsaKey : Key, IDisposable
		
			- public BigInteger D { get; }
 
			- public BigInteger DP { get; }
 
			- public BigInteger DQ { get; }
 
			- public BigInteger Exponent { get; }
 
			- public BigInteger InverseQ { get; }
 
			- public BigInteger Modulus { get; }
 
			- public BigInteger P { get; }
 
			- public BigInteger Q { get; }
 
			- public RsaKey()
 
			- public BigInteger D { get; }
 
			- public BigInteger DP { get; }
 
			- public BigInteger DQ { get; }
 
			- public BigInteger Exponent { get; }
 
			- public BigInteger InverseQ { get; }
 
			- public BigInteger Modulus { get; }
 
			- public BigInteger P { get; }
 
			- public BigInteger Q { get; }
 
			- public RsaKey(SshKeyData publicKeyData)
 
			- public RsaKey(BigInteger modulus, BigInteger exponent, BigInteger d, BigInteger p, BigInteger q, BigInteger inverseQ)
 
			- public RsaKey(BigInteger modulus, BigInteger exponent, BigInteger d, BigInteger p, BigInteger q, BigInteger inverseQ)
 
		
	 
	- 
		public sealed class SshKeyData : SshData
		
	
 
Renci.SshNet.Security.Cryptography
	- 
		public abstract class AsymmetricCipher : Cipher
		
	
 
	- 
		public abstract class BlockCipher : SymmetricCipher
		
			- protected BlockCipher(byte[] key, byte blockSize, CipherMode mode, CipherPadding padding)
 
			- protected BlockCipher(byte[] key, byte blockSize, CipherMode mode, IBlockCipherPadding padding)
 
			- public abstract int DecryptBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset)
 
			- public abstract int EncryptBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset)
 
		
	 
	- 
		public abstract class Cipher
		
			- public virtual int TagSize { get; }
 
		
	 
	- 
		public abstract class CipherDigitalSignature : DigitalSignature
		
	
 
	- 
		public class DsaDigitalSignature : DigitalSignature, IDisposable
		
	
 
	- 
		public class HMACMD5 : HMACMD5
		
	
 
	- 
		public class HMACSHA1 : HMACSHA1
		
	
 
	- 
		public class HMACSHA256 : HMACSHA256
		
	
 
	- 
		public class HMACSHA384 : HMACSHA384
		
	
 
	- 
		public class HMACSHA512 : HMACSHA512
		
	
 
	- 
		public abstract class StreamCipher : SymmetricCipher
		
	
 
	- 
		public abstract class SymmetricCipher : Cipher
		
			- public abstract int DecryptBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset)
 
			- public abstract int EncryptBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset)
 
		
	 
Renci.SshNet.Security.Cryptography.Ciphers
Renci.SshNet.Security.Cryptography.Ciphers.Paddings
Renci.SshNet.Sftp