Skip to content

Commit f50068b

Browse files
committed
Merge remote-tracking branch 'refs/remotes/origin/develop'
2 parents e359bd8 + 54a4f7d commit f50068b

File tree

507 files changed

+99540
-52355
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

507 files changed

+99540
-52355
lines changed

.gitattributes

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
* text=auto
2+
3+
*.cs text
4+
*.xaml text
5+
*.sln text eol=crlf
6+
*.csproj text eol=crlf
7+
*.shproj text eol=crlf
8+
*.appxmanifest text eol=crlf
9+
10+
*.png binary
11+
*.jpg binary
12+
*.dll binary
13+
*.pdb binary
14+
*.exe binary
15+
*.nupkg binary
16+
*.pdf binary
17+
*.snk binary

.gitignore

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Visual Studio build output
22
src/**/bin/**
33
src/**/obj/**
4+
test/**/bin/**
5+
test/**/obj/**
46

57
# MSTest test Results
68
src/TestResults/
@@ -10,8 +12,13 @@ src/TestResults/
1012
*.user
1113

1214
# NuGet packages
13-
packages/
15+
#packages/
1416

1517
# Visual Studio 2015 cache/options directory
1618
src/.vs/
1719

20+
# Expanded/resolved project.json files
21+
project.lock.json
22+
23+
# Build outputs
24+
build/target/

LICENSE

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
The MIT License (MIT)
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy
4+
of this software and associated documentation files (the "Software"), to deal
5+
in the Software without restriction, including without limitation the rights
6+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7+
copies of the Software, and to permit persons to whom the Software is
8+
furnished to do so, subject to the following conditions:
9+
10+
The above copyright notice and this permission notice shall be included in all
11+
copies or substantial portions of the Software.
12+
13+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19+
SOFTWARE.

README.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
#Introduction#
2+
This project was inspired by **Sharp.SSH** library which was ported from java and it seems like was not supported for quite some time. This library is a complete rewrite, without any third party dependencies, using parallelism to achieve the best performance possible.
3+
4+
#Features#
5+
* Execution of SSH command using both synchronous and asynchronous methods
6+
* Return command execution exit status and other information
7+
* Provide SFTP functionality for both synchronous and asynchronous operations
8+
* Provides SCP functionality
9+
* Provide status report for upload and download sftp operations to allow accurate progress bar implementation
10+
* Remote, dynamic and local port forwarding
11+
* Shell/Terminal implementation
12+
* Specify key file pass phrase
13+
* Use multiple key files to authenticate
14+
* Supports 3des-cbc, aes128-cbc, aes192-cbc, aes256-cbc, aes128-ctr, aes192-ctr, aes256-ctr, blowfish-cbc, cast128-cbc, arcfour and twofish encryptions
15+
* Supports publickey, password and keyboard-interactive authentication methods
16+
* Supports RSA and DSA private key
17+
* Supports DES-EDE3-CBC, DES-EDE3-CFB, DES-CBC, AES-128-CBC, AES-192-CBC and AES-256-CBC algorithms for private key encryption
18+
* Supports two-factor or higher authentication
19+
* Supports SOCKS4, SOCKS5 and HTTP Proxy
20+
21+
#Key Exchange Method#
22+
23+
**SSH.NET** supports the following key exchange methods:
24+
* diffie-hellman-group-exchange-sha256
25+
* diffie-hellman-group-exchange-sha1
26+
* diffie-hellman-group14-sha1
27+
* diffie-hellman-group1-sha1
28+
29+
#Message Authentication Code#
30+
31+
**SSH.NET** supports the following MAC algorithms:
32+
* hmac-md5
33+
* hmac-md5-96
34+
* hmac-sha1
35+
* hmac-sha1-96
36+
* hmac-sha2-256
37+
* hmac-sha2-256-96
38+
* hmac-sha2-512
39+
* hmac-sha2-512-96
40+
* hmac-ripemd160
41+
42+
43+
#Framework Support#
44+
**SSH.NET** supports the following target frameworks:
45+
* .NET Framework 3.5
46+
* .NET Framework 4.0
47+
* Silverlight 4
48+
* Silverlight 5
49+
* Windows Phone 7.1
50+
* Windows Phone 8.0
51+
* Universal Windows Platform 10
52+
53+
In our codebase, we use the following conditional compilation symbols to identity features supported by a given target framework:
54+
55+
Symbol | Description
56+
:------------------------------- | :--------------------------------------------------------------------------------
57+
FEATURE_DIAGNOSTICS_TRACESOURCE | [TraceSource](https://msdn.microsoft.com/en-us/library/system.diagnostics.tracesource.aspx) is available
58+
FEATURE_RNG_CSP | RandomNumberGenerator can be created using default ctor of RNGCryptoServiceProvider
59+
FEATURE_RNG_CREATE | RandomNumberGenerator can be created using static Create method on RandomNumberGenerator
60+
FEATURE_HASH_MD5 |
61+
FEATURE_HASH_SHA1 |
62+
FEATURE_HASH_SHA256 |
63+
FEATURE_HASH_SHA384 |
64+
FEATURE_HASH_SHA512 |
65+
FEATURE_HASH_RIPEMD160 |
66+
FEATURE_HMAC_MD5 |
67+
FEATURE_HMAC_SHA1 |
68+
FEATURE_HMAC_SHA256 |
69+
FEATURE_HMAC_SHA384 |
70+
FEATURE_HMAC_SHA512 |
71+
FEATURE_HMAC_RIPEMD160 |
72+
FEATURE_THREAD_SLEEP | Current thread can be suspended using static Sleep method on Thread class
73+
FEATURE_THREAD_TAP | Task-based Asynchronous Pattern is supported
74+
FEATURE_THREAD_THREADPOOL | ThreadPool is supported
75+
FEATURE_MEMORYSTREAM_GETBUFFER | [MemoryStream](https://msdn.microsoft.com/en-us/library/system.io.memorystream.aspx) features a [GetBuffer()](https://msdn.microsoft.com/en-us/library/system.io.memorystream.getbuffer.aspx) method which allows access to the byte array from which this stream was created, or the underlying array
76+
FEATURE_MEMORYSTREAM_TRYGETBUFFER| [MemoryStream](https://msdn.microsoft.com/en-us/library/system.io.memorystream.aspx) features a [TryGetBuffer(out ArraySegment<byte>)](https://msdn.microsoft.com/en-us/library/system.io.memorystream.trygetbuffer.aspx) method which allows access to the byte array from which this stream was created, or the underlying array
77+
FEATURE_STREAM_TAP | [Stream](https://msdn.microsoft.com/en-us/library/system.io.stream.aspx) supports Task-based Asynchronous Pattern (TAP)
78+
FEATURE_STREAM_APM | [Stream](https://msdn.microsoft.com/en-us/library/system.io.stream.aspx) supports Asynchronous Programming Model (APM)
79+
FEATURE_STREAM_SYNC | [Stream](https://msdn.microsoft.com/en-us/library/system.io.stream.aspx) supports synchronous execution
80+
FEATURE_SOCKET_TAP | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Task-based Asynchronous Pattern (TAP)
81+
FEATURE_SOCKET_EAP | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Event-based Asynchronous Pattern (EAP)
82+
FEATURE_SOCKET_APM | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Asynchronous Programming Model (APM)
83+
FEATURE_SOCKET_SYNC | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports synchronous execution
84+
FEATURE_SOCKET_POLL | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) features a [Poll(Int32,SelectMode)](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.poll.aspx) method
85+
FEATURE_DNS_TAP | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports Task-based Asynchronous Pattern (TAP)
86+
FEATURE_DNS_EAP | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports Event-based Asynchronous Pattern (EAP)
87+
FEATURE_DNS_APM | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports Asynchronous Programming Model (APM)
88+
FEATURE_DNS_SYNC | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports synchronous execution
89+
FEATURE_REFLECTION_TYPEINFO |
90+
91+
#Building SSH.NET#
92+
93+
Software | .NET 3.5 | .NET 4.0 | SL 4 | SL 5 | WP 71 | WP 80 | UAP10
94+
--------------------------------- | :------: | :------: | :--: | :--: | :---: | :---: | :---:
95+
Windows Phone SDK 8.0 | | | x | x | x | x |
96+
Visual Studio 2012 Update 5 | x | x | x | x | x | x |
97+
Visual Studio 2015 Update 2 | x | x | | x | | x | x
98+
99+
[![NDepend](http://download-codeplex.sec.s-msft.com/Download?ProjectName=sshnet&DownloadId=629750)](http://ndepend.com)

build/build.cmd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ set MSBUILD_HOME=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
66
rem MSBuild project file is located in the same directory as the current script
77
set MSBUILD_PROJECT=%~dp0\build.proj
88

9-
set MSBUILD_EXE=%MSBUILD_HOME%\msbuild.exe
9+
set MSBUILD_EXE="%MSBUILD_HOME%\msbuild.exe"
1010

1111
rem verify whether the version of MSBuild that we need is installed
1212
if not exist %MSBUILD_EXE% goto msbuild_missing
1313

1414
rem launch the build script
15-
call %MSBUILD_HOME%\msbuild.exe %MSBUILD_PROJECT% /verbosity:minimal /nologo
15+
call %MSBUILD_EXE% %MSBUILD_PROJECT% /verbosity:minimal /nologo
1616
if errorlevel 1 goto msbuild_failure
1717
goto :EOF
1818

build/build.proj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
<Target Name="Build">
4141
<ItemGroup>
42-
<ProjectToBuild Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.sln">
42+
<ProjectToBuild Include="$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2012.sln">
4343
<Properties>Configuration=Release</Properties>
4444
</ProjectToBuild>
4545
</ItemGroup>
@@ -52,8 +52,8 @@
5252
<Target Name="CopyBuildOutputToPackage" DependsOnTargets="Build" Outputs="%(TargetFramework.Identity)">
5353
<ItemGroup>
5454
<BuildOutput Remove="@(BuildOutput)"/>
55-
<BuildOutput Include="$(MSBuildThisFileDirectory)..\%(TargetFramework.Project)\bin\$(Configuration)\Renci.SshNet.dll"/>
56-
<BuildOutput Include="$(MSBuildThisFileDirectory)..\%(TargetFramework.Project)\bin\$(Configuration)\Renci.SshNet.xml"/>
55+
<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFramework.Project)\bin\$(Configuration)\Renci.SshNet.dll"/>
56+
<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFramework.Project)\bin\$(Configuration)\Renci.SshNet.xml"/>
5757
</ItemGroup>
5858
<Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\package\lib\%(TargetFramework.Moniker)"/>
5959
</Target>
@@ -63,8 +63,8 @@
6363

6464
<Target Name="GenerateSourceZip">
6565
<ItemGroup>
66-
<SourceFiles Include="$(MSBuildThisFileDirectory)..\Renci.SshNet\**" Exclude="$(MSBuildThisFileDirectory)..\Renci.SshNet\bin\**;$(MSBuildThisFileDirectory)..\Renci.SshNet\obj\**"/>
67-
<SourceFiles Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.snk"/>
66+
<SourceFiles Include="$(MSBuildThisFileDirectory)..\src\Renci.SshNet\**" Exclude="$(MSBuildThisFileDirectory)..\src\Renci.SshNet\bin\**;$(MSBuildThisFileDirectory)..\src\Renci.SshNet\obj\**"/>
67+
<SourceFiles Include="$(MSBuildThisFileDirectory)..\src\Renci.SshNet.snk"/>
6868
</ItemGroup>
6969
<Zip
7070
Files="@(SourceFiles)"

build/nuget/SSH.NET.nuspec

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,37 @@
22
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
33
<metadata>
44
<id>SSH.NET</id>
5-
<version>2014.4.6-beta2</version>
5+
<version>2014.4.6-beta4</version>
66
<title>SSH.NET</title>
77
<authors>Renci</authors>
8-
<owners>olegkap</owners>
9-
<licenseUrl>http://sshnet.codeplex.com/license</licenseUrl>
10-
<projectUrl>http://sshnet.codeplex.com/</projectUrl>
11-
<requireLicenseAcceptance>true</requireLicenseAcceptance>
12-
<description>This project was inspired by Sharp.SSH library which was ported from Java. This library is a complete rewrite using .NET, without any third party dependencies and to utilize the parallelism as much as possible to allow best performance you can get. SSH.NET supports .NET 3.5, .NET 4.0, Silverlight 4.0, Silverlight 5.0, Windows Phone 7.1 and Windows Phone 8.</description>
13-
<releaseNotes>2014.4.6-beta3
8+
<owners>olegkap,drieseng</owners>
9+
<licenseUrl>https://github.com/sshnet/SSH.NET/master/LICENSE</licenseUrl>
10+
<projectUrl>https://github.com/sshnet/SSH.NET/</projectUrl>
11+
<requireLicenseAcceptance>fa</requireLicenseAcceptance>
12+
<description>SSH.NET is a Secure Shell (SSH) library for .NET, optimized for parallelism and with broad framework support.</description>
13+
<releaseNotes>2016.0.0-beta1
14+
==============
15+
16+
New Features:
17+
18+
* Added support for HMAC-SHA512 (hmac-sha2-512 and hmac-sha2-512-96)
19+
20+
Changes:
21+
22+
* Overall performance improvements
23+
* Relicensed code under MIT licensen, explicitly permitting reuse within proprietary software
24+
provided all copies of the licensed software include a copy of the MIT License terms and the
25+
copyright notice
26+
* Added support for Universal Windows Platform 10 (UAP10.0)
27+
* Separated our hash algorithms into SshNet.Security.Cryptography project and package
28+
* When available, prefer hash algorithms and encodings from target framework
29+
* Refactoring to prepare for upcoming .NET Core support
30+
31+
Fixes:
32+
33+
* Race condition when SSH_MSG_GLOBAL_REQUEST is received immediately after successful authentication (GitHub issue #8)
34+
35+
2014.4.6-beta3
1436
==============
1537

1638
New Features:
@@ -99,8 +121,25 @@ Fixes:
99121
* SftpFileStream is very slow (issue #1919)
100122
* Write access required for private key file</releaseNotes>
101123
<summary>A Secure Shell (SSH) library for .NET, optimized for parallelism.</summary>
102-
<copyright>2012-2014, RENCI</copyright>
124+
<copyright>2012-2016, RENCI</copyright>
103125
<language>en-US</language>
104-
<tags>ssh .net40 sftp .net35 wp71 wp8 silverlight windowsphone</tags>
126+
<tags>ssh scp sftp</tags>
127+
<dependencies>
128+
<group targetFramework="sl4">
129+
<dependency id="Renci.Security.Cryptography" version="1.0.0" />
130+
</group>
131+
<group targetFramework="sl5">
132+
<dependency id="Renci.Security.Cryptography" version="1.0.0" />
133+
</group>
134+
<group targetFramework="wp7">
135+
<dependency id="Renci.Security.Cryptography" version="1.0.0" />
136+
</group>
137+
<group targetFramework="wp80">
138+
<dependency id="Renci.Security.Cryptography" version="1.0.0" />
139+
</group>
140+
<group targetFramework="uap10.0">
141+
<dependency id="Renci.Security.Cryptography" version="1.0.0" />
142+
</group>
143+
</dependencies>
105144
</metadata>
106145
</package>

build/sandcastle/SSH.NET.shfbproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<ComponentConfigurations>
3333
<ComponentConfig id="Code Block Component" enabled="True" xmlns="">
3434
<component id="Code Block Component">
35-
<basePath value="{@HtmlEncProjectFolder}..\..\Renci.SshNet\bin" />
35+
<basePath value="{@HtmlEncProjectFolder}..\..\src\Renci.SshNet\bin" />
3636
<outputPaths>{@HelpFormatOutputPaths}</outputPaths>
3737
<allowMissingSource value="false" />
3838
<removeRegionMarkers value="false" />
@@ -41,8 +41,8 @@
4141
</ComponentConfig>
4242
</ComponentConfigurations>
4343
<DocumentationSources>
44-
<DocumentationSource sourceFile="..\..\Renci.SshNet\bin\Release\Renci.SshNet.dll" xmlns="" />
45-
<DocumentationSource sourceFile="..\..\Renci.SshNet\bin\Release\Renci.SshNet.xml" xmlns="" />
44+
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\Renci.SshNet.dll" xmlns="" />
45+
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\Renci.SshNet.xml" xmlns="" />
4646
</DocumentationSources>
4747
<MissingTags>Summary, Parameter, Returns, AutoDocumentCtors, TypeParameter, AutoDocumentDispose</MissingTags>
4848
<BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
Binary file not shown.
662 KB
Binary file not shown.

0 commit comments

Comments
 (0)