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

Release 2023.0.1 #1284

Closed
wants to merge 102 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
a5bd08d
Assets/logos (#782)
Filini Feb 21, 2021
f072c5f
OPENSSH KeyReader for more keys (#614)
darinkes Apr 18, 2021
583a9ce
Add interface to SftpFile #120 (#812)
wxtsxt Sep 8, 2021
30d79c7
Start MessageListener with ThreadAbstraction.ExecuteThreadLongRunning…
IgorMilavec Nov 28, 2021
7bdfc9e
Add async support to SftpClient and SftpFileStream (#819)
IgorMilavec Dec 14, 2021
cad9433
Add CODEOWNERS file.
drieseng Feb 11, 2022
37fb864
Fix virus false-positive by Defender on Renci.SSHNet.Tests.dll (#867)
zybexXL Feb 14, 2022
4dfc126
Add unit tests for task-based asynchronous API (#906)
IgorMilavec Feb 15, 2022
b30b11a
correct 'Documenation' to 'Documentation' (#838)
maxijabase Feb 15, 2022
bc99ada
Agent auth and Keygen (#794)
darinkes Mar 5, 2022
03c6d60
Use cryptographically secure random number generator.
drieseng May 29, 2022
c728fba
Merge branch 'develop' of https://github.com/sshnet/SSH.NET into develop
drieseng May 29, 2022
bd7c02f
Remove unused import.
drieseng May 29, 2022
34ce2bd
Add IBaseClient for BaseClient and ISftpClient to inherit from (#975)
Owen-Krueger Jul 3, 2022
b9bc475
fix typo (#999)
psh9508 Aug 26, 2022
f3ebc29
Fix Seek Operations in SftpFileStream (#910)
lemonyte Nov 29, 2022
ab2ccc4
Add back copyright to license. (#1060)
drieseng Dec 20, 2022
cf85100
Removing old target frameworks (#1109)
WojciechNagorski May 6, 2023
8c932fb
Remove old features [Part 1] (#1117)
WojciechNagorski May 9, 2023
072ba7e
Remove FEATURE_DIRECTORYINFO_ENUMERATEFILES (#1119)
WojciechNagorski May 22, 2023
3ecbd10
Fix some (lots of) issues reported by analyzers. (#1125)
drieseng May 24, 2023
c04cdbc
Round 2 of analyzer fixes and general cleanup. (#1132)
drieseng May 29, 2023
27976bb
Analyzer fixes round 3. (#1135)
drieseng May 31, 2023
a4dbf77
Replace Array<T>.Empty with Array.Empty<T>() (#1137)
Rob-Hague Jun 6, 2023
4577899
Replace IsNullOrWhiteSpace extension (#1142)
Rob-Hague Jun 12, 2023
a3dbbc5
Use License Expression for NuGet Package
mus65 Jun 25, 2023
69a42d3
Integration tests
WojciechNagorski Jun 29, 2023
6f567ec
Remove todos
WojciechNagorski Jun 29, 2023
3d36f88
Update CODEOWNERS
WojciechNagorski Aug 25, 2023
592c86c
Merge pull request #1146 from mus65/nuget_license
WojciechNagorski Aug 25, 2023
77b27e5
Merge branch 'master' of https://github.com/sshnet/SSH.NET into integ…
WojciechNagorski Aug 26, 2023
82dc77a
Use correct SSH.NET
WojciechNagorski Aug 30, 2023
bfef6aa
Merge branch 'develop' of https://github.com/sshnet/SSH.NET into inte…
WojciechNagorski Aug 30, 2023
1b46264
Merge pull request #1148 from WojciechNagorski/integration-tests-mstests
WojciechNagorski Aug 30, 2023
7cd0487
ListDirectoryAsync return IAsyncEnumerable (#1126)
WojciechNagorski Aug 30, 2023
004b57a
Fix the assembly resolution build warning (#1165)
Rob-Hague Aug 30, 2023
9f1699b
Delete performance/longrunning tests (#1143)
Rob-Hague Sep 6, 2023
9593e87
Move Integration tests (#1173)
WojciechNagorski Sep 12, 2023
60de8a4
Add a benchmarks project (#1151)
Rob-Hague Sep 15, 2023
dcc596a
Use ExceptionDispatchInfo to retain call stack in Session.WaitOnHandl…
IgorMilavec Sep 15, 2023
43329ee
Support SHA256 fingerprints for host key validation (#1098)
DavisNT Sep 17, 2023
8732d3d
Add support for RSA SHA-2 public key algorithms (#1177)
Rob-Hague Sep 23, 2023
18e6673
Improvements after #1177 (#1180)
WojciechNagorski Sep 23, 2023
aade354
Use ExceptionDispatchInfo in more places (#1182)
Rob-Hague Sep 23, 2023
51e0c67
Try to "fix" the flaky test (#1185)
Rob-Hague Sep 25, 2023
fdd1130
Enable DSA tests (#1181)
Rob-Hague Sep 25, 2023
4ba591e
FingerPrints (#1186)
WojciechNagorski Sep 26, 2023
dd2e552
Use OS-agnostic socket error codes to allow tests run on different OS…
dimhotepus Sep 26, 2023
f28c2c2
Fix for channel session semaphore from thread blocking (#1071)
patrick-yates-redgate Sep 28, 2023
cd1151d
Update ISftpClient for #120 (#1193)
WojciechNagorski Sep 29, 2023
5803ada
Implement set last write and access time (#1194)
WojciechNagorski Sep 29, 2023
70f58b7
Add/migrate hmac+cipher integration tests (#1189)
Rob-Hague Sep 29, 2023
1c7166a
Update tests for SetLastAccessTime(Utc) to also verify the time compo…
drieseng Oct 9, 2023
91d1ed2
Enable list directory async for net framework (#1206)
Patrick-3000 Oct 14, 2023
0e9b518
Remove placeholder tests (#1183)
Rob-Hague Oct 14, 2023
f1297de
Move test projects (#1212)
WojciechNagorski Oct 14, 2023
4679609
Delete more dummy tests (#1213)
Rob-Hague Oct 15, 2023
8e23633
Update Nugets 10/2023 (#1214)
WojciechNagorski Oct 16, 2023
066f998
Upgrade .NET SDK from 7.402 to 7.403. (#1222)
drieseng Oct 25, 2023
42ff920
Merge partial classes and complete IForwardedPort interface (#1223)
drieseng Oct 25, 2023
f745b3f
Use <see langword="..."/> for language keywords.
drieseng Oct 29, 2023
508fc87
Fix analyzer errors in Renci.SshNet and Renci.SshNet.TestTools.OpenSS…
drieseng Nov 1, 2023
826222f
Increase test coverage for AesCipher (#1232)
Rob-Hague Nov 5, 2023
6ec6dc1
Remove byte order mark, set eol=lf in key files
Rob-Hague Oct 21, 2023
60ba1dd
Change the passphrase of Key.OPENSSH.ED25519.Encrypted to "12345"
Rob-Hague Oct 21, 2023
9d6f3ef
Normalize the OpenSSH files
Rob-Hague Oct 21, 2023
d36e7f5
Add OpenSSH public key files
Rob-Hague Oct 21, 2023
1fc6360
Remove duplicate GetManifestResourceStream helpers
Rob-Hague Oct 21, 2023
0829fce
Use shared Data folder for client keys in integration tests
Rob-Hague Oct 21, 2023
09ad44a
Remove unused symbols
Rob-Hague Oct 21, 2023
5ffcb94
Merge pull request #1219 from Rob-Hague/testkeys
drieseng Nov 12, 2023
823bc1b
Use CollectionAssert in ListDirectory tests (#1166)
Rob-Hague Nov 13, 2023
2eec748
Improve SFTP performance on medium/high latency connections (#866)
zybexXL Nov 13, 2023
58284d6
Update global.json (#1240)
Rob-Hague Nov 16, 2023
b4c8291
Tweak diagnostics (#1241)
Rob-Hague Nov 16, 2023
5021f6d
Use System.Security.Cryptography in AesCipher (#1235)
Rob-Hague Nov 16, 2023
54d0162
Enable trace logging for Integration tests (#1242)
WojciechNagorski Nov 16, 2023
f9f2b0e
Expose SshIdentificationReceived event (#1195)
scott-xu Nov 16, 2023
daa1acc
Fix avoidable exception when data length is too long (#823)
se006 Nov 19, 2023
18cf71b
Fix build break in Release (#1248)
Rob-Hague Nov 20, 2023
4ce18d3
Use hardware-accelerated AES CryptoServiceProvider (#865)
zybexXL Nov 28, 2023
5921b6e
Disable a few duplicate analyzer rules. (#1254)
drieseng Nov 30, 2023
d3641a0
Test integration tests (#1250)
WojciechNagorski Nov 30, 2023
4c7bd35
Add support for .NET 8.0 (#1255)
scott-xu Dec 1, 2023
a027c76
Fail with a friendlier error message when response has not been set (…
Rob-Hague Dec 2, 2023
9b0262c
Disable some impactful analyzers (#1246)
Rob-Hague Dec 2, 2023
6d9d032
Rebased AsyncResult fix (#1184)
Rob-Hague Dec 4, 2023
4c4883e
Standardizes additional file types in .editorconfig (#1266)
jacobslusser Dec 9, 2023
f45af38
Replace SemaphoreLight with SemaphoreSlim (#1265)
Rob-Hague Dec 9, 2023
04178d8
Always use factories for HmacAlgorithms (#1262)
Rob-Hague Dec 9, 2023
6220beb
Native async (#1267)
WojciechNagorski Dec 9, 2023
f172ac5
Removes MessageAttribute in favor of properties on Message class (#1270)
jacobslusser Dec 10, 2023
f4371ff
Reduces heap allocations for the some byte[] uses (#1272)
jacobslusser Dec 11, 2023
326ce14
Maintain current build solution (#1268)
scott-xu Dec 15, 2023
34b5123
Send the client key exchange init in Connect (#1274)
Rob-Hague Dec 21, 2023
e998d87
Add a few spans on net6.0 or greater (#1138)
Rob-Hague Dec 21, 2023
24838e6
Make keys immutable (#1264)
Rob-Hague Dec 21, 2023
b0d01df
Try to stabilise a few tests (#1278)
Rob-Hague Dec 22, 2023
e7a64dd
Fix hung dispose caused by infinite socket timeout (#1280)
jkillingsworth Dec 28, 2023
2b53e46
Authenticate with ssh-rsa by default (#1283)
Rob-Hague Dec 28, 2023
4c2dcd5
Upgrade packages (#1279)
Rob-Hague Dec 29, 2023
7436a38
Remove code examples (#1210)
WojciechNagorski Dec 29, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,466 changes: 1,466 additions & 0 deletions .editorconfig

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@
*.nupkg binary
*.pdf binary
*.snk binary

# Ensure key files have LF endings for easier usage with ssh-keygen
test/Data/* eol=lf
7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ test/**/bin/**
test/**/obj/**

# MSTest test Results
src/TestResults/
TestResults/

# User-specific files
*.suo
Expand All @@ -15,10 +15,13 @@ src/TestResults/
packages/

# Visual Studio 2015 cache/options directory
src/.vs/
.vs/

# Expanded/resolved project.json files
project.lock.json

# Build outputs
build/target/

# Benchmark results
BenchmarkDotNet.Artifacts/
1 change: 1 addition & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @drieseng @WojciechNagorski
41 changes: 41 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<Project>
<Import Project="$(MSBuildThisFileFullPath).user" Condition="Exists('$(MSBuildThisFileFullPath).user')" />

<!--
Assembly Info properties that apply to all projects/assemblies.
-->
<PropertyGroup>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)Renci.SshNet.snk</AssemblyOriginatorKeyFile>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<LangVersion>latest</LangVersion>
<WarningLevel>9999</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
</PropertyGroup>

<!--
Code analysis properties.
-->
<PropertyGroup>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>preview-All</AnalysisLevel>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>

<!--
Add the stylecop config to each project.
-->
<ItemGroup>
<AdditionalFiles Include="..\..\stylecop.json" Link="stylecop.json" Visible="false" />
</ItemGroup>

<!--
Use fixed version of analyzers.
-->
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556" PrivateAssets="all" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.103" PrivateAssets="all" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="9.16.0.82469" PrivateAssets="all" />
</ItemGroup>
</Project>
2 changes: 2 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
The MIT License (MIT)

Copyright (c) Renci, Oleg Kapeljushnik, Gert Driesen and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
Expand Down
47 changes: 8 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ the missing test once you figure things out. 🤓
* RSA in OpenSSL PEM and ssh.com format
* DSA in OpenSSL PEM and ssh.com format
* ECDSA 256/384/521 in OpenSSL PEM format
* ED25519 in OpenSSH key format
* ECDSA 256/384/521, ED25519 and RSA in OpenSSH key format

Private keys can be encrypted using one of the following cipher methods:
* DES-EDE3-CBC
Expand All @@ -97,6 +97,8 @@ Private keys can be encrypted using one of the following cipher methods:
* ecdsa-sha2-nistp256
* ecdsa-sha2-nistp384
* ecdsa-sha2-nistp521
* rsa-sha2-512
* rsa-sha2-256
* ssh-rsa
* ssh-dss

Expand All @@ -116,15 +118,9 @@ Private keys can be encrypted using one of the following cipher methods:

## Framework Support
**SSH.NET** supports the following target frameworks:
* .NET Framework 3.5
* .NET Framework 4.0 (and higher)
* .NET Standard 1.3
* .NET Standard 2.0
* Silverlight 4
* Silverlight 5
* Windows Phone 7.1
* Windows Phone 8.0
* Universal Windows Platform 10
* .NETFramework 4.6.2 (and higher)
* .NET Standard 2.0 and 2.1
* .NET 6 (and higher)

## Usage

Expand All @@ -149,45 +145,18 @@ using (var client = new SftpClient(connectionInfo))
Establish a SSH connection using user name and password, and reject the connection if the fingerprint of the server does not match the expected fingerprint:

```cs
byte[] expectedFingerPrint = new byte[] {
0x66, 0x31, 0xaf, 0x00, 0x54, 0xb9, 0x87, 0x31,
0xff, 0x58, 0x1c, 0x31, 0xb1, 0xa2, 0x4c, 0x6b
};
string expectedFingerPrint = "LKOy5LvmtEe17S4lyxVXqvs7uPMy+yF79MQpHeCs/Qo";

using (var client = new SshClient("sftp.foo.com", "guest", "pwd"))
{
client.HostKeyReceived += (sender, e) =>
{
if (expectedFingerPrint.Length == e.FingerPrint.Length)
{
for (var i = 0; i < expectedFingerPrint.Length; i++)
{
if (expectedFingerPrint[i] != e.FingerPrint[i])
{
e.CanTrust = false;
break;
}
}
}
else
{
e.CanTrust = false;
}
e.CanTrust = expectedFingerPrint.Equals(e.FingerPrintSHA256);
};
client.Connect();
}
```

## Building SSH.NET

Software | net35 | net40 | netstandard1.3 | netstandard2.0 | sl4 | sl5 | wp71 | wp8 | uap10.0 |
--------------------------------- | :---: | :---: | :------------: | :------------: | :-: | :-: | :--: | :-: | :-----: |
Windows Phone SDK 8.0 | | | | | x | x | x | x |
Visual Studio 2012 Update 5 | x | x | | | x | x | x | x |
Visual Studio 2015 Update 3 | x | x | | | | x | | x | x
Visual Studio 2017 | x | x | x | x | | | | |
Visual Studio 2019 | x | x | x | x | | | | |

## Supporting SSH.NET

Do you or your company rely on **SSH.NET** in your projects? If you want to encourage us to keep on going and show us that you appreciate our work, please consider becoming a [sponsor](https://github.com/sponsors/sshnet) through GitHub Sponsors.
Loading