Merge remote-tracking branch 'refs/remotes/origin/develop'

This commit is contained in:
Gert Driesen
2016-07-14 21:20:09 +02:00
98 changed files with 758 additions and 47602 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ src/TestResults/
*.user
# NuGet packages
#packages/
packages/
# Visual Studio 2015 cache/options directory
src/.vs/
+41 -35
View File
@@ -59,41 +59,47 @@ This project was inspired by **Sharp.SSH** library which was ported from java an
In our codebase, we use the following conditional compilation symbols to identity features supported by a given target framework:
Symbol | Description
:------------------------------- | :--------------------------------------------------------------------------------
FEATURE_DIAGNOSTICS_TRACESOURCE | [TraceSource](https://msdn.microsoft.com/en-us/library/system.diagnostics.tracesource.aspx) is available
FEATURE_RNG_CSP | RandomNumberGenerator can be created using default ctor of RNGCryptoServiceProvider
FEATURE_RNG_CREATE | RandomNumberGenerator can be created using static Create method on RandomNumberGenerator
FEATURE_HASH_MD5 |
FEATURE_HASH_SHA1 |
FEATURE_HASH_SHA256 |
FEATURE_HASH_SHA384 |
FEATURE_HASH_SHA512 |
FEATURE_HASH_RIPEMD160 |
FEATURE_HMAC_MD5 |
FEATURE_HMAC_SHA1 |
FEATURE_HMAC_SHA256 |
FEATURE_HMAC_SHA384 |
FEATURE_HMAC_SHA512 |
FEATURE_HMAC_RIPEMD160 |
FEATURE_THREAD_SLEEP | Current thread can be suspended using static Sleep method on Thread class
FEATURE_THREAD_TAP | Task-based Asynchronous Pattern is supported
FEATURE_THREAD_THREADPOOL | ThreadPool is supported
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
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
FEATURE_STREAM_TAP | [Stream](https://msdn.microsoft.com/en-us/library/system.io.stream.aspx) supports Task-based Asynchronous Pattern (TAP)
FEATURE_STREAM_APM | [Stream](https://msdn.microsoft.com/en-us/library/system.io.stream.aspx) supports Asynchronous Programming Model (APM)
FEATURE_STREAM_SYNC | [Stream](https://msdn.microsoft.com/en-us/library/system.io.stream.aspx) supports synchronous execution
FEATURE_SOCKET_TAP | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Task-based Asynchronous Pattern (TAP)
FEATURE_SOCKET_EAP | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Event-based Asynchronous Pattern (EAP)
FEATURE_SOCKET_APM | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Asynchronous Programming Model (APM)
FEATURE_SOCKET_SYNC | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports synchronous execution
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
FEATURE_DNS_TAP | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports Task-based Asynchronous Pattern (TAP)
FEATURE_DNS_EAP | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports Event-based Asynchronous Pattern (EAP)
FEATURE_DNS_APM | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports Asynchronous Programming Model (APM)
FEATURE_DNS_SYNC | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports synchronous execution
FEATURE_REFLECTION_TYPEINFO |
Symbol | Description
:----------------------------------- | :--------------------------------------------------------------------------------
FEATURE_ENCODING_ASCII | [Encoding.ASCII](https://msdn.microsoft.com/en-us/library/system.text.encoding.ascii(v=vs.110).aspx) is available
FEATURE_BINARY_SERIALIZATION | Binary serialization is supported.
FEATURE_DIAGNOSTICS_TRACESOURCE | [TraceSource](https://msdn.microsoft.com/en-us/library/system.diagnostics.tracesource.aspx) is available
FEATURE_DIRECTORYINFO_ENUMERATEFILES | [DirectoryInfo.EnumerationFiles(string)](https://msdn.microsoft.com/en-us/library/dd413343(v=vs.110).aspx) is available
FEATURE_RNG_CSP | RandomNumberGenerator can be created using default ctor of RNGCryptoServiceProvider
FEATURE_RNG_CREATE | RandomNumberGenerator can be created using static Create method on RandomNumberGenerator
FEATURE_HASH_MD5 |
FEATURE_HASH_SHA1_CREATE |
FEATURE_HASH_SHA1_MANAGED |
FEATURE_HASH_SHA256_CREATE |
FEATURE_HASH_SHA256_MANAGED |
FEATURE_HASH_SHA384_CREATE |
FEATURE_HASH_SHA384_MANAGED |
FEATURE_HASH_SHA512_CREATE |
FEATURE_HASH_SHA512_MANAGED |
FEATURE_HASH_RIPEMD160_CREATE |
FEATURE_HASH_RIPEMD160_MANAGED |
FEATURE_HMAC_MD5 |
FEATURE_HMAC_SHA1 |
FEATURE_HMAC_SHA256 |
FEATURE_HMAC_SHA384 |
FEATURE_HMAC_SHA512 |
FEATURE_HMAC_RIPEMD160 |
FEATURE_THREAD_SLEEP | Current thread can be suspended using static Sleep method on Thread class
FEATURE_THREAD_TAP | Task-based Asynchronous Pattern is supported
FEATURE_THREAD_THREADPOOL | ThreadPool is supported
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
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
FEATURE_STREAM_TAP | [Stream](https://msdn.microsoft.com/en-us/library/system.io.stream.aspx) supports Task-based Asynchronous Pattern (TAP)
FEATURE_STREAM_APM | [Stream](https://msdn.microsoft.com/en-us/library/system.io.stream.aspx) supports Asynchronous Programming Model (APM)
FEATURE_SOCKET_TAP | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Task-based Asynchronous Pattern (TAP)
FEATURE_SOCKET_EAP | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Event-based Asynchronous Pattern (EAP)
FEATURE_SOCKET_APM | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports Asynchronous Programming Model (APM)
FEATURE_SOCKET_SYNC | [Socket](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx) supports synchronous execution
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
FEATURE_DNS_TAP | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports Task-based Asynchronous Pattern (TAP)
FEATURE_DNS_APM | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports Asynchronous Programming Model (APM)
FEATURE_DNS_SYNC | [Dns](https://msdn.microsoft.com/en-us/library/system.net.dns.aspx) supports synchronous execution
FEATURE_REFLECTION_TYPEINFO |
##Building SSH.NET
+4
View File
@@ -22,6 +22,10 @@
<OutputDirectory>Renci.SshNet\bin\$(Configuration)</OutputDirectory>
<Moniker>net40</Moniker>
</TargetFramework>
<TargetFramework Include=".NETStandard 1.3">
<OutputDirectory>Renci.SshNet.NETCore\bin\$(Configuration)\netstandard1.3</OutputDirectory>
<Moniker>netstandard1.3</Moniker>
</TargetFramework>
<TargetFramework Include="Windows Phone Silverlight 7.1">
<OutputDirectory>Renci.SshNet.WindowsPhone\bin\$(Configuration)</OutputDirectory>
<Moniker>wp71</Moniker>
+41 -8
View File
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>SSH.NET</id>
<version>2016.0.0-beta2</version>
<version>2016.0.0-beta3</version>
<title>SSH.NET</title>
<authors>Renci</authors>
<owners>olegkap,drieseng</owners>
@@ -10,7 +10,14 @@
<projectUrl>https://github.com/sshnet/SSH.NET/</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>SSH.NET is a Secure Shell (SSH) library for .NET, optimized for parallelism and with broad framework support.</description>
<releaseNotes>2016.0.0-beta2
<releaseNotes>2016.0.0-beta3
==============
New Features:
* Added support for .NET Core 1.0 (.NETStandard 1.3)
2016.0.0-beta2
==============
Changes:
@@ -127,21 +134,47 @@ Fixes:
<language>en-US</language>
<tags>ssh scp sftp</tags>
<dependencies>
<group targetFramework="net35" />
<group targetFramework="net40" />
<group targetFramework="netstandard1.3">
<dependency id="Microsoft.CSharp" version="4.0.1" />
<dependency id="SshNet.Security.Cryptography" version="[1.2.0]" />
<dependency id="System.Diagnostics.Debug" version="4.0.11" />
<dependency id="System.Diagnostics.Tools" version="4.0.1" />
<dependency id="System.Diagnostics.TraceSource" version="4.0.0" />
<dependency id="System.Globalization" version="4.0.11" />
<dependency id="System.IO" version="4.1.0" />
<dependency id="System.IO.FileSystem" version="4.0.1" />
<dependency id="System.IO.FileSystem.Primitives" version="4.0.1" />
<dependency id="System.Linq" version="4.1.0" />
<dependency id="System.Net.NameResolution" version="4.0.0" />
<dependency id="System.Net.Sockets" version="4.1.0" />
<dependency id="System.Reflection.Extensions" version="4.0.1" />
<dependency id="System.Runtime.Extensions" version="4.1.0" />
<dependency id="System.Security.Cryptography.Algorithms" version="4.2.0" />
<dependency id="System.Text.RegularExpressions" version="4.1.0" />
<dependency id="System.Threading" version="4.0.11" />
<dependency id="System.Threading.Thread" version="4.0.0" />
<dependency id="System.Threading.ThreadPool" version="4.0.10" />
<dependency id="System.Threading.Timer" version="4.0.1" />
<dependency id="System.Xml.XmlDocument" version="4.0.1" />
<dependency id="System.Xml.XPath.XmlDocument" version="4.0.1" />
</group>
<group targetFramework="sl4">
<dependency id="SshNet.Security.Cryptography" version="[1.0.0]" />
<dependency id="SshNet.Security.Cryptography" version="[1.2.0]" />
</group>
<group targetFramework="sl5">
<dependency id="SshNet.Security.Cryptography" version="[1.0.0]" />
<dependency id="SshNet.Security.Cryptography" version="[1.2.0]" />
</group>
<group targetFramework="wp71">
<dependency id="SshNet.Security.Cryptography" version="[1.0.0]" />
<dependency id="SshNet.Security.Cryptography" version="[1.2.0]" />
</group>
<group targetFramework="wp8">
<dependency id="SshNet.Security.Cryptography" version="[1.0.0]" />
<dependency id="SshNet.Security.Cryptography" version="[1.2.0]" />
</group>
<group targetFramework="uap10.0">
<dependency id="SshNet.Security.Cryptography" version="[1.0.0]" />
<dependency id="System.Xml.XPath.XmlDocument" version="4.0.0" />
<dependency id="SshNet.Security.Cryptography" version="[1.2.0]" />
<dependency id="System.Xml.XPath.XmlDocument" version="4.0.1" />
</group>
</dependencies>
</metadata>
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-9
View File
@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<repositories>
<repository path="..\src\Renci.SshNet.Silverlight\packages.config" />
<repository path="..\src\Renci.SshNet.Silverlight5\packages.config" />
<repository path="..\src\Renci.SshNet.Tests.NET35\packages.config" />
<repository path="..\src\Renci.SshNet.Tests\packages.config" />
<repository path="..\src\Renci.SshNet.WindowsPhone\packages.config" />
<repository path="..\src\Renci.SshNet.WindowsPhone8\packages.config" />
</repositories>
@@ -18,7 +18,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_RNG_CSP;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HASH_SHA384;FEATURE_HASH_SHA512;FEATURE_HASH_RIPEMD160;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HASH_RIPEMD160_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
@@ -28,7 +28,7 @@
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;FEATURE_RNG_CSP;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HASH_SHA384;FEATURE_HASH_SHA512;FEATURE_HASH_RIPEMD160;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HASH_RIPEMD160_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\Renci.SshNet.xml</DocumentationFile>
@@ -45,9 +45,6 @@
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
@@ -60,6 +57,9 @@
<Compile Include="..\Renci.SshNet\Abstractions\DnsAbstraction.cs">
<Link>Abstractions\DnsAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\FileSystemAbstraction.cs">
<Link>Abstractions\FileSystemAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\ReflectionAbstraction.cs">
<Link>Abstractions\ReflectionAbstraction.cs</Link>
</Compile>
@@ -180,9 +180,6 @@
<Compile Include="..\Renci.SshNet\Common\NetConfServerException.cs">
<Link>Common\NetConfServerException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\NetConfServerException.NET40.cs">
<Link>Common\NetConfServerException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\ObjectIdentifier.cs">
<Link>Common\ObjectIdentifier.cs</Link>
</Compile>
@@ -201,9 +198,6 @@
<Compile Include="..\Renci.SshNet\Common\ScpException.cs">
<Link>Common\ScpException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\ScpException.NET40.cs">
<Link>Common\ScpException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\ScpUploadEventArgs.cs">
<Link>Common\ScpUploadEventArgs.cs</Link>
</Compile>
@@ -213,30 +207,18 @@
<Compile Include="..\Renci.SshNet\Common\SftpPathNotFoundException.cs">
<Link>Common\SftpPathNotFoundException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SftpPathNotFoundException.NET40.cs">
<Link>Common\SftpPathNotFoundException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SftpPermissionDeniedException.cs">
<Link>Common\SftpPermissionDeniedException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SftpPermissionDeniedException.NET40.cs">
<Link>Common\SftpPermissionDeniedException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\ShellDataEventArgs.cs">
<Link>Common\ShellDataEventArgs.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshAuthenticationException.cs">
<Link>Common\SshAuthenticationException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshAuthenticationException.NET40.cs">
<Link>Common\SshAuthenticationException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshConnectionException.cs">
<Link>Common\SshConnectionException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshConnectionException.NET40.cs">
<Link>Common\SshConnectionException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshData.cs">
<Link>Common\SshData.cs</Link>
</Compile>
@@ -246,21 +228,12 @@
<Compile Include="..\Renci.SshNet\Common\SshException.cs">
<Link>Common\SshException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshException.NET40.cs">
<Link>Common\SshException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshOperationTimeoutException.cs">
<Link>Common\SshOperationTimeoutException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshOperationTimeoutException.NET40.cs">
<Link>Common\SshOperationTimeoutException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshPassPhraseNullOrEmptyException.cs">
<Link>Common\SshPassPhraseNullOrEmptyException.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\SshPassPhraseNullOrEmptyException.NET40.cs">
<Link>Common\SshPassPhraseNullOrEmptyException.NET40.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Common\TerminalModes.cs">
<Link>Common\TerminalModes.cs</Link>
</Compile>
@@ -0,0 +1,3 @@
using System.Reflection;
[assembly: AssemblyTitle("SSH.NET")]
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
<PropertyGroup Label="Globals">
<ProjectGuid>8e8229eb-6780-4a8a-b470-e2023fa55ab5</ProjectGuid>
<RootNamespace>Renci.SshNet</RootNamespace>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
</Project>
+88
View File
@@ -0,0 +1,88 @@
{
"title": "SSH.NET",
"configurations": {
"debug": {
"buildOptions": {
"debugType": "full",
"define": [ "DEBUG", "TRACE" ]
}
},
"release": {
"buildOptions": {
"debugType": "none",
"define": [ "TRACE" ]
}
}
},
"buildOptions": {
"outputName": "Renci.SshNet",
"keyFile": "../Renci.SshNet.snk",
"compile": {
"include": [
"../Renci.SshNet/**/*.cs"
],
"exclude": [
"../Renci.SshNet/Properties/AssemblyInfo.cs"
]
},
"optimize": true,
"xmlDoc": true,
"warningsAsErrors": true
},
"frameworks": {
"netstandard1.3": {
"dependencies": {
"Microsoft.CSharp": "4.0.1",
"SshNet.Security.Cryptography": "[1.2.0]",
"System.Diagnostics.Debug": "4.0.11",
"System.Diagnostics.Tools": "4.0.1",
"System.Diagnostics.TraceSource": "4.0.0",
"System.Globalization": "4.0.11",
"System.IO": "4.1.0",
"System.IO.FileSystem": "4.0.1",
"System.IO.FileSystem.Primitives": "4.0.1",
"System.Linq": "4.1.0",
"System.Net.NameResolution": "4.0.0",
"System.Net.Sockets": "4.1.0",
"System.Reflection.Extensions": "4.0.1",
"System.Runtime.Extensions": "4.1.0",
"System.Security.Cryptography.Algorithms": "4.2.0",
"System.Text.RegularExpressions": "4.1.0",
"System.Threading": "4.0.11",
"System.Threading.Thread": "4.0.0",
"System.Threading.ThreadPool": "4.0.10",
"System.Threading.Timer": "4.0.1",
"System.Xml.XmlDocument": "4.0.1",
"System.Xml.XPath.XmlDocument": "4.0.1"
},
"buildOptions": {
"define": [
"FEATURE_ENCODING_ASCII",
"FEATURE_DIAGNOSTICS_TRACESOURCE",
"FEATURE_DIRECTORYINFO_ENUMERATEFILES",
"FEATURE_MEMORYSTREAM_TRYGETBUFFER",
"FEATURE_REFLECTION_TYPEINFO",
"FEATURE_RNG_CREATE",
"FEATURE_SOCKET_TAP",
"FEATURE_SOCKET_EAP",
"FEATURE_SOCKET_POLL",
"FEATURE_SOCKET_SYNC",
"FEATURE_DNS_TAP",
"FEATURE_STREAM_TAP",
"FEATURE_THREAD_THREADPOOL",
"FEATURE_THREAD_SLEEP",
"FEATURE_HASH_MD5",
"FEATURE_HASH_SHA1_CREATE",
"FEATURE_HASH_SHA256_CREATE",
"FEATURE_HASH_SHA384_CREATE",
"FEATURE_HASH_SHA512_CREATE",
"FEATURE_HMAC_MD5",
"FEATURE_HMAC_SHA1",
"FEATURE_HMAC_SHA256",
"FEATURE_HMAC_SHA384",
"FEATURE_HMAC_SHA512"
]
}
}
}
}
@@ -29,7 +29,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Bin\Debug</OutputPath>
<DefineConstants>TRACE;DEBUG;SILVERLIGHT;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_MEMORYSTREAM_GETBUFFER</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_MEMORYSTREAM_GETBUFFER</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
@@ -40,7 +40,7 @@
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>Bin\Release</OutputPath>
<DefineConstants>TRACE;SILVERLIGHT;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_MEMORYSTREAM_GETBUFFER</DefineConstants>
<DefineConstants>TRACE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_MEMORYSTREAM_GETBUFFER</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
@@ -57,9 +57,8 @@
<ItemGroup>
<Reference Include="Microsoft.CSharp, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="mscorlib" />
<Reference Include="SshNet.Security.Cryptography, Version=1.0.0.0, Culture=neutral, PublicKeyToken=50c6375d29e47192, processorArchitecture=MSIL">
<HintPath>..\..\packages\SshNet.Security.Cryptography.1.0.0\lib\sl4\SshNet.Security.Cryptography.dll</HintPath>
<Private>True</Private>
<Reference Include="SshNet.Security.Cryptography">
<HintPath>..\..\packages\SshNet.Security.Cryptography.1.2.0\lib\sl4\SshNet.Security.Cryptography.dll</HintPath>
</Reference>
<Reference Include="system" />
<Reference Include="System.Core" />
@@ -76,6 +75,9 @@
<Compile Include="..\Renci.SshNet\Abstractions\DnsAbstraction.cs">
<Link>Abstractions\DnsAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\FileSystemAbstraction.cs">
<Link>Abstractions\FileSystemAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\ReflectionAbstraction.cs">
<Link>Abstractions\ReflectionAbstraction.cs</Link>
</Compile>
@@ -895,7 +897,9 @@
<None Include="..\Renci.SshNet.snk">
<Link>Renci.SshNet.snk</Link>
</None>
<None Include="packages.config" />
<None Include="packages.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />
<ProjectExtensions>
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="SshNet.Security.Cryptography" version="1.0.0" targetFramework="sl40" />
<package id="SshNet.Security.Cryptography" version="1.2.0" targetFramework="sl40" />
</packages>
@@ -29,7 +29,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Bin\Debug</OutputPath>
<DefineConstants>TRACE;DEBUG;SILVERLIGHT;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
@@ -42,7 +42,7 @@
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>Bin\Release</OutputPath>
<DefineConstants>TRACE;SILVERLIGHT;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
@@ -62,9 +62,8 @@
<ItemGroup>
<Reference Include="Microsoft.CSharp, Version=5.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="mscorlib" />
<Reference Include="SshNet.Security.Cryptography, Version=1.0.0.0, Culture=neutral, PublicKeyToken=50c6375d29e47192, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\SshNet.Security.Cryptography.1.0.0\lib\sl5\SshNet.Security.Cryptography.dll</HintPath>
<Reference Include="SshNet.Security.Cryptography, Version=1.2.0.0, Culture=neutral, PublicKeyToken=2fa9220ff3eadda4, processorArchitecture=MSIL">
<HintPath>..\..\packages\SshNet.Security.Cryptography.1.2.0\lib\sl5\SshNet.Security.Cryptography.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="system" />
@@ -88,6 +87,9 @@
<Compile Include="..\Renci.SshNet\Abstractions\DnsAbstraction.cs">
<Link>Abstractions\DnsAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\FileSystemAbstraction.cs">
<Link>Abstractions\FileSystemAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\ReflectionAbstraction.cs">
<Link>Abstractions\ReflectionAbstraction.cs</Link>
</Compile>
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="SshNet.Security.Cryptography" version="1.0.0" targetFramework="sl5" />
<package id="SshNet.Security.Cryptography" version="1.2.0" targetFramework="sl5" />
</packages>
@@ -166,21 +166,6 @@ namespace Renci.SshNet.Tests.Classes.Common
Assert.AreEqual(0x00, readBuffer[5]);
}
/// <summary>
///A test for BlockLastReadBuffer
///</summary>
[TestMethod]
public void BlockLastReadBufferTest()
{
PipeStream target = new PipeStream(); // TODO: Initialize to an appropriate value
bool expected = false; // TODO: Initialize to an appropriate value
bool actual;
target.BlockLastReadBuffer = expected;
actual = target.BlockLastReadBuffer;
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Verify the correctness of this test method.");
}
[TestMethod]
public void CanReadTest()
{
@@ -29,32 +29,6 @@ namespace Renci.SshNet.Tests.Classes
_pipeStream.Dispose();
}
[TestMethod]
public void BlockLastReadBuffer_Getter_ShouldThrowObjectDisposedException()
{
try
{
var value = _pipeStream.BlockLastReadBuffer;
Assert.Fail("" + value);
}
catch (ObjectDisposedException)
{
}
}
[TestMethod]
public void BlockLastReadBuffer_Setter_ShouldThrowObjectDisposedException()
{
try
{
_pipeStream.BlockLastReadBuffer = true;
Assert.Fail();
}
catch (ObjectDisposedException)
{
}
}
[TestMethod]
public void CanRead_ShouldReturnTrue()
{
@@ -18,7 +18,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
@@ -67,6 +67,9 @@
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\Abstractions\DnsAbstraction_GetHostAddresses.cs">
<Link>Classes\Abstractions\DnsAbstraction_GetHostAddresses.cs</Link>
</Compile>
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\Abstractions\FileSystemAbstraction_EnumerateFiles.cs">
<Link>Classes\Abstractions\FileSystemAbstraction_EnumerateFiles.cs</Link>
</Compile>
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\Abstractions\ThreadAbstraction_ExecuteThread.cs">
<Link>Classes\Abstractions\ThreadAbstraction_ExecuteThread.cs</Link>
</Compile>
@@ -23,7 +23,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_DATAGRAMSOCKET;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\Renci.SshNet.xml</DocumentationFile>
@@ -34,7 +34,7 @@
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;FEATURE_DATAGRAMSOCKET;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\Renci.SshNet.xml</DocumentationFile>
@@ -44,7 +44,7 @@
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_REGEX_COMPILE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_DATAGRAMSOCKET;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
@@ -54,7 +54,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<PlatformTarget>x86</PlatformTarget>
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;FEATURE_DATAGRAMSOCKET;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
@@ -66,7 +66,7 @@
<PlatformTarget>ARM</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_DATAGRAMSOCKET;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
@@ -76,7 +76,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
<PlatformTarget>ARM</PlatformTarget>
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;FEATURE_DATAGRAMSOCKET;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
@@ -88,7 +88,7 @@
<PlatformTarget>x64</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_DATAGRAMSOCKET;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
@@ -98,7 +98,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;FEATURE_DATAGRAMSOCKET;FEATURE_SOCKET_EAP;FEATURE_STREAM_TAP;FEATURE_THREAD_TAP;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_ENCODING_ASCII</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
@@ -120,6 +120,9 @@
<Compile Include="..\Renci.SshNet\Abstractions\DnsAbstraction.cs">
<Link>Abstractions\DnsAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\FileSystemAbstraction.cs">
<Link>Abstractions\FileSystemAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\ReflectionAbstraction.cs">
<Link>Abstractions\ReflectionAbstraction.cs</Link>
</Compile>
+2 -2
View File
@@ -1,8 +1,8 @@
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0",
"SshNet.Security.Cryptography": "1.0.0",
"System.Xml.XPath.XmlDocument": "4.0.0"
"SshNet.Security.Cryptography": "1.2.0",
"System.Xml.XPath.XmlDocument": "4.0.1"
},
"frameworks": {
"uap10.0": {}
+22
View File
@@ -37,6 +37,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Renci.SshNet.Shared.Tests",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.WindowsPhone8.Tests", "..\test\Renci.SshNet.WindowsPhone8.Tests\Renci.SshNet.WindowsPhone8.Tests.csproj", "{26F0D644-B3EF-47DF-8040-E9E4B2E63884}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Renci.SshNet.NETCore", "Renci.SshNet.NETCore\Renci.SshNet.NETCore.xproj", "{8E8229EB-6780-4A8A-B470-E2023FA55AB5}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
..\test\Renci.SshNet.Shared.Tests\Renci.SshNet.Shared.Tests.projitems*{fae3948f-a438-458e-8e0e-7f6e39a5dd8a}*SharedItemsImports = 13
@@ -181,6 +183,26 @@ Global
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|x86.ActiveCfg = Release|x86
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|x86.Build.0 = Release|x86
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|x86.Deploy.0 = Release|x86
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|ARM.ActiveCfg = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|ARM.Build.0 = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|x64.ActiveCfg = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|x64.Build.0 = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|x86.ActiveCfg = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Debug|x86.Build.0 = Debug|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|Any CPU.Build.0 = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|ARM.ActiveCfg = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|ARM.Build.0 = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|x64.ActiveCfg = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|x64.Build.0 = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|x86.ActiveCfg = Release|Any CPU
{8E8229EB-6780-4A8A-B470-E2023FA55AB5}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -24,7 +24,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Bin\Debug</OutputPath>
<DefineConstants>TRACE;DEBUG;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_DEVICEINFORMATION_APM;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_REGEX_COMPILE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
@@ -35,7 +35,7 @@
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>Bin\Release</OutputPath>
<DefineConstants>TRACE;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;FEATURE_DEVICEINFORMATION_APM;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_REGEX_COMPILE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
@@ -45,9 +45,9 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Phone" />
<Reference Include="SshNet.Security.Cryptography, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\SshNet.Security.Cryptography.1.0.0\lib\wp71\SshNet.Security.Cryptography.dll</HintPath>
<Private>True</Private>
<Reference Include="SshNet.Security.Cryptography, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\SshNet.Security.Cryptography.1.2.0\lib\wp71\SshNet.Security.Cryptography.dll</HintPath>
</Reference>
<Reference Include="system" />
<Reference Include="System.Net" />
@@ -62,6 +62,9 @@
<Compile Include="..\Renci.SshNet\Abstractions\DnsAbstraction.cs">
<Link>Abstractions\DnsAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\FileSystemAbstraction.cs">
<Link>Abstractions\FileSystemAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\ReflectionAbstraction.cs">
<Link>Abstractions\ReflectionAbstraction.cs</Link>
</Compile>
@@ -879,7 +882,9 @@
<Compile Include="Session.WP.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="packages.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.CSharp.targets" />
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="SshNet.Security.Cryptography" version="1.0.0" targetFramework="wp71" />
<package id="SshNet.Security.Cryptography" version="1.2.0" targetFramework="wp71" />
</packages>
@@ -23,7 +23,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Bin\Debug</OutputPath>
<DefineConstants>TRACE;DEBUG;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_REGEX_COMPILE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_STREAM_TAP;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
@@ -36,7 +36,7 @@
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>Bin\Release</OutputPath>
<DefineConstants>TRACE;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;FEATURE_REGEX_COMPILE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_STREAM_TAP;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
@@ -50,7 +50,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>Bin\x86\Debug</OutputPath>
<DefineConstants>TRACE;DEBUG;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_STREAM_TAP;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<NoStdLib>true</NoStdLib>
<DebugType>full</DebugType>
<PlatformTarget>
@@ -61,7 +61,7 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>Bin\x86\Release</OutputPath>
<DefineConstants>TRACE;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;FEATURE_STREAM_TAP;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<Optimize>true</Optimize>
<NoStdLib>true</NoStdLib>
<DebugType>pdbonly</DebugType>
@@ -73,7 +73,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>Bin\ARM\Debug</OutputPath>
<DefineConstants>TRACE;DEBUG;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_STREAM_TAP;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<NoStdLib>true</NoStdLib>
<DebugType>full</DebugType>
<PlatformTarget>
@@ -84,7 +84,7 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
<OutputPath>Bin\ARM\Release</OutputPath>
<DefineConstants>TRACE;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<DefineConstants>TRACE;FEATURE_STREAM_TAP;WINDOWS_PHONE;FEATURE_RNG_CSP;FEATURE_SOCKET_EAP;FEATURE_STREAM_APM;FEATURE_DEVICEINFORMATION_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_HASH_SHA1_MANAGED;FEATURE_HASH_SHA256_MANAGED;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256</DefineConstants>
<Optimize>true</Optimize>
<NoStdLib>true</NoStdLib>
<DebugType>pdbonly</DebugType>
@@ -106,6 +106,9 @@
<Compile Include="..\Renci.SshNet\Abstractions\DnsAbstraction.cs">
<Link>Abstractions\DnsAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\FileSystemAbstraction.cs">
<Link>Abstractions\FileSystemAbstraction.cs</Link>
</Compile>
<Compile Include="..\Renci.SshNet\Abstractions\ReflectionAbstraction.cs">
<Link>Abstractions\ReflectionAbstraction.cs</Link>
</Compile>
@@ -922,20 +925,19 @@
</Compile>
</ItemGroup>
<ItemGroup>
<Reference Include="SshNet.Security.Cryptography, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\SshNet.Security.Cryptography.1.0.0\lib\wp8\SshNet.Security.Cryptography.dll</HintPath>
<Private>True</Private>
</Reference>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<Reference Include="SshNet.Security.Cryptography, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\SshNet.Security.Cryptography.1.2.0\lib\wp8\SshNet.Security.Cryptography.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).$(TargetFrameworkVersion).Overrides.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
<UserProperties ProjectLinkerExcludeFilter="\\?desktop(\\.*)?$;\\?silverlight(\\.*)?$;\.desktop;\.silverlight;\.xaml;^service references(\\.*)?$;\.clientconfig;^web references(\\.*)?$" ProjectLinkReference="2f5f8c90-0bd1-424f-997c-7bc6280919d1" />
<UserProperties ProjectLinkReference="2f5f8c90-0bd1-424f-997c-7bc6280919d1" ProjectLinkerExcludeFilter="\\?desktop(\\.*)?$;\\?silverlight(\\.*)?$;\.desktop;\.silverlight;\.xaml;^service references(\\.*)?$;\.clientconfig;^web references(\\.*)?$" />
</VisualStudio>
</ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="SshNet.Security.Cryptography" version="1.0.0" targetFramework="wp8" />
<package id="SshNet.Security.Cryptography" version="1.2.0" targetFramework="wp8" />
<package id="System.IO" version="4.1.0" targetFramework="wp8" />
</packages>
@@ -54,10 +54,14 @@ namespace Renci.SshNet.Security.Cryptography
}
#endif // FEATURE_HASH_MD5
#if FEATURE_HASH_SHA1
#if FEATURE_HASH_SHA1_CREATE || FEATURE_HASH_SHA1_MANAGED
public static System.Security.Cryptography.SHA1 CreateSHA1()
{
#if FEATURE_HASH_SHA1_CREATE
return System.Security.Cryptography.SHA1.Create();
#elif FEATURE_HASH_SHA1_MANAGED
return new System.Security.Cryptography.SHA1Managed();
#endif
}
#else
public static global::SshNet.Security.Cryptography.SHA1 CreateSHA1()
@@ -66,10 +70,14 @@ namespace Renci.SshNet.Security.Cryptography
}
#endif
#if FEATURE_HASH_SHA256
#if FEATURE_HASH_SHA256_CREATE || FEATURE_HASH_SHA256_MANAGED
public static System.Security.Cryptography.SHA256 CreateSHA256()
{
#if FEATURE_HASH_SHA256_CREATE
return System.Security.Cryptography.SHA256.Create();
#elif FEATURE_HASH_SHA256_MANAGED
return new System.Security.Cryptography.SHA256Managed();
#endif
}
#else
public static global::SshNet.Security.Cryptography.SHA256 CreateSHA256()
@@ -78,10 +86,14 @@ namespace Renci.SshNet.Security.Cryptography
}
#endif
#if FEATURE_HASH_SHA384
#if FEATURE_HASH_SHA384_CREATE || FEATURE_HASH_SHA384_MANAGED
public static System.Security.Cryptography.SHA384 CreateSHA384()
{
#if FEATURE_HASH_SHA384_CREATE
return System.Security.Cryptography.SHA384.Create();
#elif FEATURE_HASH_SHA384_MANAGED
return new System.Security.Cryptography.SHA384Managed();
#endif
}
#else
public static global::SshNet.Security.Cryptography.SHA384 CreateSHA384()
@@ -90,10 +102,14 @@ namespace Renci.SshNet.Security.Cryptography
}
#endif
#if FEATURE_HASH_SHA512
#if FEATURE_HASH_SHA512_CREATE || FEATURE_HASH_SHA512_MANAGED
public static System.Security.Cryptography.SHA512 CreateSHA512()
{
#if FEATURE_HASH_SHA512_CREATE
return System.Security.Cryptography.SHA512.Create();
#elif FEATURE_HASH_SHA512_MANAGED
return new System.Security.Cryptography.SHA512Managed();
#endif
}
#else
public static global::SshNet.Security.Cryptography.SHA512 CreateSHA512()
@@ -102,10 +118,14 @@ namespace Renci.SshNet.Security.Cryptography
}
#endif
#if FEATURE_HASH_RIPEMD160
#if FEATURE_HASH_RIPEMD160_CREATE || FEATURE_HASH_RIPEMD160_MANAGED
public static System.Security.Cryptography.RIPEMD160 CreateRIPEMD160()
{
#if FEATURE_HASH_RIPEMD160_CREATE
return System.Security.Cryptography.RIPEMD160.Create();
#else
return new System.Security.Cryptography.RIPEMD160Managed();
#endif
}
#else
public static global::SshNet.Security.Cryptography.RIPEMD160 CreateRIPEMD160()
@@ -31,8 +31,15 @@ namespace Renci.SshNet.Abstractions
/// <exception cref="SocketException">An error is encountered when resolving <paramref name="hostNameOrAddress"/>.</exception>
public static IPAddress[] GetHostAddresses(string hostNameOrAddress)
{
// TODO Eliminate sync variant, and implement timeout
#if FEATURE_DNS_SYNC
return Dns.GetHostAddresses(hostNameOrAddress);
#elif FEATURE_DNS_APM
var asyncResult = Dns.BeginGetHostAddresses(hostNameOrAddress, null, null);
if (!asyncResult.AsyncWaitHandle.WaitOne(Session.InfiniteTimeSpan))
throw new SshOperationTimeoutException("Timeout resolving host name.");
return Dns.EndGetHostAddresses(asyncResult);
#elif FEATURE_DNS_TAP
return Dns.GetHostAddressesAsync(hostNameOrAddress).Result;
#else
@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.IO;
namespace Renci.SshNet.Abstractions
{
internal class FileSystemAbstraction
{
/// <summary>
/// Returns an enumerable collection of file information that matches a search pattern.
/// </summary>
/// <param name="directoryInfo"></param>
/// <param name="searchPattern">The search string to match against the names of files.</param>
/// <returns>
/// An enumerable collection of files that matches <paramref name="searchPattern"/>.
/// </returns>
/// <exception cref="ArgumentNullException"><paramref name="directoryInfo"/> is <c>null</c>.</exception>
/// <exception cref="ArgumentNullException"><paramref name="searchPattern"/> is <c>null</c>.</exception>
/// <exception cref="DirectoryNotFoundException">The path represented by <paramref name="directoryInfo"/> does not exist or is not valid.</exception>
public static IEnumerable<FileInfo> EnumerateFiles(DirectoryInfo directoryInfo, string searchPattern)
{
if (directoryInfo == null)
throw new ArgumentNullException("directoryInfo");
#if FEATURE_DIRECTORYINFO_ENUMERATEFILES
return directoryInfo.EnumerateFiles(searchPattern);
#else
return directoryInfo.GetFiles(searchPattern);
#endif
}
}
}
-13
View File
@@ -191,19 +191,6 @@ namespace Renci.SshNet.Common
return byteCount;
}
#if !SILVERLIGHT && !WINDOWS_PHONE
/// <summary>
/// Gets a value indicating whether the current encoding uses single-byte code points
/// </summary>
/// <value>
/// This property is always <c>true</c>.
/// </value>
public override bool IsSingleByte
{
get { return true; }
}
#endif // !SILVERLIGHT && !WINDOWS_PHONE
}
}
@@ -1,32 +0,0 @@
using System.Net.Sockets;
namespace Renci.SshNet
{
/// <summary>
/// Collection of different extension method specific for .NET 4.0
/// </summary>
public static partial class Extensions
{
/// <summary>
/// Indicates whether a specified string is null, empty, or consists only of white-space characters.
/// </summary>
/// <param name="value">The string to test.</param>
/// <returns>
/// <c>true</c> if the value parameter is null or System.String.Empty, or if value consists exclusively of white-space characters; otherwise, <c>false</c>.
/// </returns>
internal static bool IsNullOrWhiteSpace(this string value)
{
return string.IsNullOrWhiteSpace(value);
}
internal static bool CanRead(this Socket socket)
{
return socket.Connected && socket.Poll(-1, SelectMode.SelectRead) && socket.Available > 0;
}
internal static bool CanWrite(this Socket socket)
{
return socket.Connected && socket.Poll(-1, SelectMode.SelectWrite);
}
}
}
@@ -1,24 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when there is something wrong with the server capabilities.
/// </summary>
[Serializable]
public partial class NetConfServerException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshAuthenticationException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected NetConfServerException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
@@ -1,10 +1,16 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when there is something wrong with the server capabilities.
/// </summary>
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public partial class NetConfServerException : SshException
{
/// <summary>
@@ -32,5 +38,19 @@ namespace Renci.SshNet.Common
base(message, innerException)
{
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="SshAuthenticationException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected NetConfServerException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
+5 -5
View File
@@ -195,7 +195,7 @@
if (count == 0)
return 0;
int readLength = 0;
var readLength = 0;
lock (_buffer)
{
@@ -211,7 +211,7 @@
}
// fill the read buffer
for (; readLength < count && Length > 0 && _buffer.Count > 0; readLength++)
for (; readLength < count && _buffer.Count > 0; readLength++)
{
buffer[readLength] = _buffer.Dequeue();
}
@@ -229,8 +229,8 @@
/// <returns><c>True</c> if data available; otherwise<c>false</c>.</returns>
private bool ReadAvailable(int count)
{
return (Length >= count || _isFlushed) &&
(Length >= (count + 1) || !BlockLastReadBuffer);
var length = Length;
return (_isFlushed || length >= count) && (length >= (count + 1) || !BlockLastReadBuffer);
}
///<summary>
@@ -267,7 +267,7 @@
_isFlushed = false; // if it were flushed before, it soon will not be.
// queue up the buffer data
for (int i = offset; i < offset + count; i++)
for (var i = offset; i < offset + count; i++)
{
_buffer.Enqueue(buffer[i]);
}
@@ -1,22 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
[Serializable]
public partial class ProxyException
{
/// <summary>
/// Initializes a new instance of the <see cref="ProxyException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected ProxyException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
+20 -1
View File
@@ -1,10 +1,16 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when SCP error occurred.
/// </summary>
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public partial class ProxyException : SshException
{
/// <summary>
@@ -32,6 +38,19 @@ namespace Renci.SshNet.Common
base(message, innerException)
{
}
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="ProxyException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="SerializationException">The class name is null or <see cref="Exception.HResult"/> is zero (0). </exception>
protected ProxyException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
@@ -1,21 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
[Serializable]
public partial class ScpException
{
/// <summary>
/// Initializes a new instance of the <see cref="ScpException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected ScpException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
+21 -3
View File
@@ -1,18 +1,23 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when SCP error occurred.
/// </summary>
public partial class ScpException : SshException
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public class ScpException : SshException
{
/// <summary>
/// Initializes a new instance of the <see cref="ScpException"/> class.
/// </summary>
public ScpException()
{
}
/// <summary>
@@ -22,7 +27,6 @@ namespace Renci.SshNet.Common
public ScpException(string message)
: base(message)
{
}
/// <summary>
@@ -34,5 +38,19 @@ namespace Renci.SshNet.Common
base(message, innerException)
{
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="ScpException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected ScpException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
@@ -1,24 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when file or directory is not found.
/// </summary>
[Serializable]
public partial class SftpPathNotFoundException
{
/// <summary>
/// Initializes a new instance of the <see cref="SftpPathNotFoundException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected SftpPathNotFoundException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
@@ -1,11 +1,17 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when file or directory is not found.
/// </summary>
public partial class SftpPathNotFoundException : SshException
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public class SftpPathNotFoundException : SshException
{
/// <summary>
/// Initializes a new instance of the <see cref="SftpPathNotFoundException"/> class.
@@ -32,5 +38,19 @@ namespace Renci.SshNet.Common
base(message, innerException)
{
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="SftpPathNotFoundException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected SftpPathNotFoundException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
@@ -1,24 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when operation permission is denied.
/// </summary>
[Serializable]
public partial class SftpPermissionDeniedException
{
/// <summary>
/// Initializes a new instance of the <see cref="SftpPermissionDeniedException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected SftpPermissionDeniedException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
@@ -1,11 +1,17 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when operation permission is denied.
/// </summary>
public partial class SftpPermissionDeniedException : SshException
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public class SftpPermissionDeniedException : SshException
{
/// <summary>
/// Initializes a new instance of the <see cref="SftpPermissionDeniedException"/> class.
@@ -32,5 +38,19 @@ namespace Renci.SshNet.Common
base(message, innerException)
{
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="SftpPermissionDeniedException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected SftpPermissionDeniedException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
@@ -1,24 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when authentication failed.
/// </summary>
[Serializable]
public partial class SshAuthenticationException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshAuthenticationException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected SshAuthenticationException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
@@ -1,11 +1,17 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when authentication failed.
/// </summary>
public partial class SshAuthenticationException : SshException
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public class SshAuthenticationException : SshException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshAuthenticationException"/> class.
@@ -34,5 +40,19 @@ namespace Renci.SshNet.Common
base(message, innerException)
{
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="SshAuthenticationException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected SshAuthenticationException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
@@ -1,24 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when connection was terminated.
/// </summary>
[Serializable]
public partial class SshConnectionException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshConnectionException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected SshConnectionException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
@@ -1,4 +1,7 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
using Renci.SshNet.Messages.Transport;
namespace Renci.SshNet.Common
@@ -6,7 +9,10 @@ namespace Renci.SshNet.Common
/// <summary>
/// The exception that is thrown when connection was terminated.
/// </summary>
public partial class SshConnectionException : SshException
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public class SshConnectionException : SshException
{
/// <summary>
/// Gets the disconnect reason if provided by the server or client. Otherwise None.
@@ -52,5 +58,19 @@ namespace Renci.SshNet.Common
{
DisconnectReason = disconnectReasonCode;
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="SshConnectionException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected SshConnectionException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
+4
View File
@@ -11,7 +11,11 @@ namespace Renci.SshNet.Common
{
internal const int DefaultCapacity = 64;
#if FEATURE_ENCODING_ASCII
internal static readonly Encoding Ascii = Encoding.ASCII;
#else
internal static readonly Encoding Ascii = new ASCIIEncoding();
#endif
internal static readonly Encoding Utf8 = Encoding.UTF8;
private SshDataStream _stream;
@@ -1,25 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when SSH exception occurs.
/// </summary>
[Serializable]
public partial class SshException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
///
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected SshException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
+20
View File
@@ -1,10 +1,16 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when SSH exception occurs.
/// </summary>
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public partial class SshException : Exception
{
/// <summary>
@@ -32,5 +38,19 @@ namespace Renci.SshNet.Common
: base(message, inner)
{
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="SshException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected SshException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
@@ -1,21 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
[Serializable]
public partial class SshOperationTimeoutException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshOperationTimeoutException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected SshOperationTimeoutException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
@@ -1,11 +1,17 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when operation is timed out.
/// </summary>
public partial class SshOperationTimeoutException : SshException
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public class SshOperationTimeoutException : SshException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshOperationTimeoutException"/> class.
@@ -32,5 +38,19 @@ namespace Renci.SshNet.Common
base(message, innerException)
{
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="SshOperationTimeoutException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected SshOperationTimeoutException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
@@ -1,24 +0,0 @@
using System;
using System.Runtime.Serialization;
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when pass phrase for key file is empty or null
/// </summary>
[Serializable]
public partial class SshPassPhraseNullOrEmptyException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshPassPhraseNullOrEmptyException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
protected SshPassPhraseNullOrEmptyException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
}
@@ -1,11 +1,17 @@
using System;
#if FEATURE_BINARY_SERIALIZATION
using System.Runtime.Serialization;
#endif // FEATURE_BINARY_SERIALIZATION
namespace Renci.SshNet.Common
{
/// <summary>
/// The exception that is thrown when pass phrase for key file is empty or null
/// </summary>
public partial class SshPassPhraseNullOrEmptyException : SshException
#if FEATURE_BINARY_SERIALIZATION
[Serializable]
#endif // FEATURE_BINARY_SERIALIZATION
public class SshPassPhraseNullOrEmptyException : SshException
{
/// <summary>
/// Initializes a new instance of the <see cref="SshPassPhraseNullOrEmptyException"/> class.
@@ -34,5 +40,19 @@ namespace Renci.SshNet.Common
base(message, innerException)
{
}
#if FEATURE_BINARY_SERIALIZATION
/// <summary>
/// Initializes a new instance of the <see cref="SshPassPhraseNullOrEmptyException"/> class.
/// </summary>
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="ArgumentNullException">The <paramref name="info"/> parameter is <c>null</c>.</exception>
/// <exception cref="SerializationException">The class name is <c>null</c> or <see cref="Exception.HResult"/> is zero (0). </exception>
protected SshPassPhraseNullOrEmptyException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
#endif // FEATURE_BINARY_SERIALIZATION
}
}
+3 -3
View File
@@ -51,10 +51,10 @@ namespace Renci.SshNet
public class PrivateKeyFile : IDisposable
{
private static readonly Regex PrivateKeyRegex = new Regex(@"^-+ *BEGIN (?<keyName>\w+( \w+)*) PRIVATE KEY *-+\r?\n((Proc-Type: 4,ENCRYPTED\r?\nDEK-Info: (?<cipherName>[A-Z0-9-]+),(?<salt>[A-F0-9]+)\r?\n\r?\n)|(Comment: ""?[^\r\n]*""?\r?\n))?(?<data>([a-zA-Z0-9/+=]{1,80}\r?\n)+)-+ *END \k<keyName> PRIVATE KEY *-+",
#if SILVERLIGHT
RegexOptions.Multiline);
#else
#if FEATURE_REGEX_COMPILE
RegexOptions.Compiled | RegexOptions.Multiline);
#else
RegexOptions.Multiline);
#endif
private Key _key;
@@ -11,7 +11,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyVersion("2016.0.0")]
[assembly: AssemblyFileVersion("2016.0.0")]
[assembly: AssemblyInformationalVersion("2016.0.0-beta2")]
[assembly: AssemblyInformationalVersion("2016.0.0-beta3")]
[assembly: CLSCompliant(false)]
// Setting ComVisible to false makes the types in this assembly not visible
+4 -14
View File
@@ -18,17 +18,18 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_RNG_CSP;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HASH_SHA384;FEATURE_HASH_SHA512;FEATURE_HASH_RIPEMD160;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>TRACE;DEBUG;FEATURE_REGEX_COMPILE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_DNS_SYNC;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_APM;FEATURE_SOCKET_EAP;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HASH_RIPEMD160_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\Renci.SshNet.xml</DocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<LangVersion>4</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>FEATURE_RNG_CSP;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1;FEATURE_HASH_SHA256;FEATURE_HASH_SHA384;FEATURE_HASH_SHA512;FEATURE_HASH_RIPEMD160;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII</DefineConstants>
<DefineConstants>FEATURE_REGEX_COMPILE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_DNS_SYNC;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_APM;FEATURE_SOCKET_EAP;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HASH_RIPEMD160_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\Renci.SshNet.xml</DocumentationFile>
@@ -52,6 +53,7 @@
<Compile Include="Abstractions\CryptoAbstraction.cs" />
<Compile Include="Abstractions\DiagnosticAbstraction.cs" />
<Compile Include="Abstractions\DnsAbstraction.cs" />
<Compile Include="Abstractions\FileSystemAbstraction.cs" />
<Compile Include="Abstractions\ReflectionAbstraction.cs" />
<Compile Include="Abstractions\SocketAbstraction.cs" />
<Compile Include="Abstractions\ThreadAbstraction.cs" />
@@ -96,9 +98,7 @@
<Compile Include="Common\ProxyException.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\ProxyException.NET40.cs" />
<Compile Include="Common\HostKeyEventArgs.cs" />
<Compile Include="Common\NetConfServerException.NET40.cs" />
<Compile Include="Common\DerData.cs" />
<Compile Include="Common\ExceptionEventArgs.cs" />
<Compile Include="Common\Extensions.cs">
@@ -116,9 +116,6 @@
<Compile Include="Common\ScpException.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\ScpException.NET40.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\ScpUploadEventArgs.cs">
<SubType>Code</SubType>
</Compile>
@@ -126,21 +123,14 @@
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\SftpPathNotFoundException.cs" />
<Compile Include="Common\SftpPathNotFoundException.NET40.cs" />
<Compile Include="Common\SftpPermissionDeniedException.cs" />
<Compile Include="Common\SftpPermissionDeniedException.NET40.cs" />
<Compile Include="Common\ShellDataEventArgs.cs" />
<Compile Include="Common\SshAuthenticationException.cs" />
<Compile Include="Common\SshAuthenticationException.NET40.cs" />
<Compile Include="Common\SshConnectionException.cs" />
<Compile Include="Common\SshConnectionException.NET40.cs" />
<Compile Include="Common\SshData.cs" />
<Compile Include="Common\SshException.cs" />
<Compile Include="Common\SshException.NET40.cs" />
<Compile Include="Common\SshOperationTimeoutException.cs" />
<Compile Include="Common\SshOperationTimeoutException.NET40.cs" />
<Compile Include="Common\SshPassPhraseNullOrEmptyException.cs" />
<Compile Include="Common\SshPassPhraseNullOrEmptyException.NET40.cs" />
<Compile Include="Common\TerminalModes.cs">
<SubType>Code</SubType>
</Compile>
+3 -3
View File
@@ -67,10 +67,10 @@ namespace Renci.SshNet
/// </value>
private const int LocalChannelDataPacketSize = 1024*64;
#if SILVERLIGHT
private static readonly Regex ServerVersionRe = new Regex("^SSH-(?<protoversion>[^-]+)-(?<softwareversion>.+)( SP.+)?$");
#else
#if FEATURE_REGEX_COMPILE
private static readonly Regex ServerVersionRe = new Regex("^SSH-(?<protoversion>[^-]+)-(?<softwareversion>.+)( SP.+)?$", RegexOptions.Compiled);
#else
private static readonly Regex ServerVersionRe = new Regex("^SSH-(?<protoversion>[^-]+)-(?<softwareversion>.+)( SP.+)?$");
#endif
/// <summary>
+1 -10
View File
@@ -45,16 +45,7 @@ namespace Renci.SshNet.Sftp
{
get
{
#if WINDOWS_PHONE
lock (this)
{
this._requestId++;
}
return (uint)this._requestId;
#else
return ((uint) Interlocked.Increment(ref _requestId));
#endif
return (uint) Interlocked.Increment(ref _requestId);
}
}
+2 -7
View File
@@ -1650,13 +1650,8 @@ namespace Renci.SshNet
var sourceDirectory = new DirectoryInfo(sourcePath);
#if SILVERLIGHT
var sourceFiles = sourceDirectory.EnumerateFiles(searchPattern);
#else
var sourceFiles = sourceDirectory.GetFiles(searchPattern);
#endif
if (sourceFiles == null || !sourceFiles.Any())
var sourceFiles = FileSystemAbstraction.EnumerateFiles(sourceDirectory, searchPattern).ToList();
if (sourceFiles.Count == 0)
return uploadedFiles;
#region Existing Files at The Destination
+7 -11
View File
@@ -140,19 +140,15 @@ namespace Renci.SshNet
continue;
}
#elif FEATURE_STREAM_APM
var asyncResult = _input.BeginRead(buffer, 0, buffer.Length, delegate(IAsyncResult result)
{
// If input stream is closed and disposed already dont finish reading the stream
if (_input == null)
return;
var read = _input.EndRead(result);
if (read > 0)
var asyncResult = _input.BeginRead(buffer, 0, buffer.Length, result =>
{
_channel.SendData(buffer, 0, read);
}
// If input stream is closed and disposed already don't finish reading the stream
if (_input == null)
return;
}, null);
var read = _input.EndRead(result);
_channel.SendData(buffer, 0, read);
}, null);
WaitHandle.WaitAny(new[] { asyncResult.AsyncWaitHandle, _channelClosedWaitHandle });
@@ -23,10 +23,8 @@ namespace Renci.SshNet.Tests.Abstractions
DnsAbstraction.GetHostAddresses(hostNameOrAddress);
Assert.Fail();
}
catch (ArgumentNullException ex)
catch (ArgumentNullException)
{
Assert.IsNull(ex.InnerException);
Assert.AreEqual("hostNameOrAddress", ex.ParamName);
}
}
@@ -0,0 +1,166 @@
using System;
using System.IO;
using System.Linq;
using Renci.SshNet.Abstractions;
#if SILVERLIGHT
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
#else
using Microsoft.VisualStudio.TestTools.UnitTesting;
#endif
namespace Renci.SshNet.Tests.Abstractions
{
[TestClass]
public class FileSystemAbstraction_EnumerateFiles
{
private string _temporaryDirectory;
[TestInitialize]
public void SetUp()
{
_temporaryDirectory = Path.GetTempFileName();
File.Delete(_temporaryDirectory);
Directory.CreateDirectory(_temporaryDirectory);
}
[TestCleanup]
public void TearDown()
{
if (_temporaryDirectory != null && Directory.Exists(_temporaryDirectory))
{
Directory.Delete(_temporaryDirectory, true);
}
}
[TestMethod]
public void ShouldThrowArgumentNullExceptionWhenDirectoryInfoIsNull()
{
const DirectoryInfo directoryInfo = null;
const string searchPattern = "*.xml";
try
{
FileSystemAbstraction.EnumerateFiles(directoryInfo, searchPattern);
Assert.Fail();
}
catch (ArgumentNullException ex)
{
Assert.IsNull(ex.InnerException);
Assert.AreEqual("directoryInfo", ex.ParamName);
}
}
[TestMethod]
public void ShouldThrowArgumentNullExceptionWhenSearchPatternIsNull()
{
var directoryInfo = new DirectoryInfo(_temporaryDirectory);
const string searchPattern = null;
try
{
FileSystemAbstraction.EnumerateFiles(directoryInfo, searchPattern);
Assert.Fail();
}
catch (ArgumentNullException ex)
{
Assert.IsNull(ex.InnerException);
Assert.AreEqual("searchPattern", ex.ParamName);
}
}
[TestMethod]
public void ShouldThrowDirectoryNotFoundExceptionWhenDirectoryDoesNotExist()
{
var directoryInfo = new DirectoryInfo(_temporaryDirectory);
const string searchPattern = "*.xml";
Directory.Delete(_temporaryDirectory, true);
try
{
FileSystemAbstraction.EnumerateFiles(directoryInfo, searchPattern);
Assert.Fail();
}
catch (DirectoryNotFoundException)
{
}
}
[TestMethod]
public void ShouldReturnEmptyEnumerableWhenNoFilesExistInDirectory()
{
var directoryInfo = new DirectoryInfo(_temporaryDirectory);
const string searchPattern = "*.xml";
var actual = FileSystemAbstraction.EnumerateFiles(directoryInfo, searchPattern);
Assert.IsFalse(actual.GetEnumerator().MoveNext());
}
[TestMethod]
public void ShouldReturnEmptyEnumerableWhenNoFilesMatchSearchPatternExistInDirectory()
{
CreateFile(Path.Combine(_temporaryDirectory, "test.txt"));
var directoryInfo = new DirectoryInfo(_temporaryDirectory);
const string searchPattern = "*.xml";
var actual = FileSystemAbstraction.EnumerateFiles(directoryInfo, searchPattern);
Assert.IsFalse(actual.GetEnumerator().MoveNext());
}
[TestMethod]
public void ShouldReturnEmptyEnumerableWhenSearchPatternIsEmpty()
{
CreateFile(Path.Combine(_temporaryDirectory, "test.txt"));
var directoryInfo = new DirectoryInfo(_temporaryDirectory);
const string searchPattern = "";
var actual = FileSystemAbstraction.EnumerateFiles(directoryInfo, searchPattern);
Assert.IsFalse(actual.GetEnumerator().MoveNext());
}
[TestMethod]
public void ShouldReturnAllFilesInDirectoryWhenSearchPatternIsAsterisk()
{
CreateFile(Path.Combine(_temporaryDirectory, "test.txt"));
CreateFile(Path.Combine(_temporaryDirectory, "test.xml"));
var directoryInfo = new DirectoryInfo(_temporaryDirectory);
const string searchPattern = "*";
var actual = FileSystemAbstraction.EnumerateFiles(directoryInfo, searchPattern).ToList();
Assert.AreEqual(2, actual.Count);
Assert.IsTrue(actual.Exists(p => p.Name == "test.txt"));
Assert.IsTrue(actual.Exists(p => p.Name == "test.xml"));
}
[TestMethod]
public void ShouldReturnOnlyReturnFilesFromTopLevelDirectory()
{
CreateFile(Path.Combine(_temporaryDirectory, "test.txt"));
CreateFile(Path.Combine(_temporaryDirectory, "test.xml"));
Directory.CreateDirectory(Path.Combine(_temporaryDirectory, "sub"));
CreateFile(Path.Combine(_temporaryDirectory, "sub", "test.csv"));
var directoryInfo = new DirectoryInfo(_temporaryDirectory);
const string searchPattern = "*";
var actual = FileSystemAbstraction.EnumerateFiles(directoryInfo, searchPattern).ToList();
Assert.AreEqual(2, actual.Count);
Assert.IsTrue(actual.Exists(p => p.Name == "test.txt"));
Assert.IsTrue(actual.Exists(p => p.Name == "test.xml"));
}
private static void CreateFile(string fileName)
{
var fs = File.Create(fileName);
fs.Dispose();
}
}
}
@@ -11,6 +11,7 @@
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)Abstractions\CryptoAbstraction_GenerateRandom.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Abstractions\DnsAbstraction_GetHostAddresses.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Abstractions\FileSystemAbstraction_EnumerateFiles.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Abstractions\ThreadAbstraction_ExecuteThread.cs" />
<Compile Include="$(MSBuildThisFileDirectory)SshMessageFactoryTest.cs" />
</ItemGroup>
@@ -382,8 +382,6 @@ namespace Renci.SshNet.Tests
[TestMethod]
public void EnableActivatedMessagesShouldThrowSshExceptionWhenAnothersMessageWithSameMessageNumberWasEnabledAfterInvokingDisableNonKeyExchangeMessages()
{
const byte messageNumber = 60;
_sshMessageFactory.EnableAndActivateMessage("SSH_MSG_USERAUTH_PASSWD_CHANGEREQ");
_sshMessageFactory.DisableNonKeyExchangeMessages();
_sshMessageFactory.EnableAndActivateMessage("SSH_MSG_USERAUTH_INFO_REQUEST");