Use SDK-style project where possible (#629)

* Change Renci.SshNet project into SDK-style project supporting .NET 3.5, .NET 4.0; .NET Standard 1.3, .NET Standard 2.0.
* Remove .NET 3.5 project.
* Remove .NET 3.5 test project.
* Refactor away .NET 3.5 and .NET 4.0 specific source files.
* Remove .NET Core project.
* Add VS 2019 solution.
* Use VS 2019 image and solution file in AppVeyor.
* Run tests against multi-target framework test project.
* No need to shutdown socket when client disconnects.
This commit is contained in:
Gert Driesen
2020-02-28 21:46:39 +01:00
committed by GitHub
parent 5d23ed43d7
commit 5c2e2b4c4a
36 changed files with 609 additions and 5577 deletions
+5 -5
View File
@@ -1,14 +1,14 @@
os: Visual Studio 2015
os: Visual Studio 2019
before_build:
- nuget restore src\Renci.SshNet.VS2015.sln
- nuget restore src\Renci.SshNet.VS2019.sln
build:
project: src\Renci.SshNet.VS2015.sln
project: src\Renci.SshNet.VS2019.sln
verbosity: minimal
test_script:
- cmd: >-
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net40\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
vstest.console /logger:Appveyor src\Renci.SshNet.Tests.NET35\bin\Debug\Renci.SshNet.Tests.NET35.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net35\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
+3
View File
@@ -0,0 +1,3 @@
rem vstest.console src\Renci.SshNet.Tests\bin\Debug\net40\Renci.SshNet.Tests.dll "/TestCaseFilter:TestCategory=Gert
vstest.console src\Renci.SshNet.Tests\bin\Debug\net40\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
@@ -1,38 +0,0 @@
using System;
using System.Diagnostics;
using System.Security.Cryptography;
using System.Text;
namespace Renci.SshNet.Common
{
/// <summary>
/// Collection of different extension method specific for .NET 3.5
/// </summary>
internal static partial class Extensions
{
/// <summary>
/// Disposes the specified algorithm.
/// </summary>
/// <param name="algorithm">The algorithm.</param>
[DebuggerNonUserCode]
internal static void Dispose(this HashAlgorithm algorithm)
{
if (algorithm == null)
throw new NullReferenceException();
algorithm.Clear();
}
/// <summary>
/// Clears the contents of the string builder.
/// </summary>
/// <param name="value">
/// The <see cref="StringBuilder"/> to clear.
/// </param>
public static void Clear(this StringBuilder value)
{
value.Length = 0;
value.Capacity = 16;
}
}
}
@@ -1,8 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("SSH.NET .NET 3.5")]
[assembly: Guid("a9698831-4993-469b-81f1-aed4e5379252")]
[assembly: InternalsVisibleTo("Renci.SshNet.Tests.NET35, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f9194e1eb66b7e2575aaee115ee1d27bc100920e7150e43992d6f668f9737de8b9c7ae892b62b8a36dd1d57929ff1541665d101dc476d6e02390846efae7e5186eec409710fdb596e3f83740afef0d4443055937649bc5a773175b61c57615dac0f0fd10f52b52fedf76c17474cc567b3f7a79de95dde842509fb39aaf69c6c2")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
File diff suppressed because it is too large Load Diff
@@ -1,3 +0,0 @@
using System.Reflection;
[assembly: AssemblyTitle("SSH.NET")]
@@ -1,38 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.3;netstandard2.0</TargetFrameworks>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<AssemblyName>Renci.SshNet</AssemblyName>
<AssemblyOriginatorKeyFile>../Renci.SshNet.snk</AssemblyOriginatorKeyFile>
<LangVersion>5</LangVersion>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\Renci.SshNet\**\*.cs" Exclude="..\Renci.SshNet\Properties\AssemblyInfo.cs">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
</Compile>
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
<PackageReference Include="SshNet.Security.Cryptography" Version="[1.3.0]" />
<PackageReference Include="System.Diagnostics.TraceSource" Version="4.3.0" />
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
<PackageReference Include="System.Threading.Thread" Version="4.3.0" />
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0" />
<PackageReference Include="System.Threading.Timer" Version="4.3.0" />
<PackageReference Include="System.Xml.XmlDocument" Version="4.3.0" />
<PackageReference Include="System.Xml.XPath.XmlDocument" Version="4.3.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="SshNet.Security.Cryptography" Version="[1.3.0]" />
<PackageReference Include="System.Security.Cryptography.Cng" Version="4.4.0" />
</ItemGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
<DefineConstants>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_SYNC;FEATURE_SOCKET_SETSOCKETOPTION;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_DNS_TAP;FEATURE_STREAM_TAP;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_TAP;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;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</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<DefineConstants>FEATURE_ENCODING_ASCII;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_RNG_CREATE;FEATURE_SOCKET_TAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_EAP;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_SETSOCKETOPTION;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_DNS_SYNC;FEATURE_DNS_APM;FEATURE_DNS_TAP;FEATURE_STREAM_APM;FEATURE_STREAM_TAP;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_TAP;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;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;FEATURE_ECDSA</DefineConstants>
</PropertyGroup>
</Project>
@@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.SshClientTests
{
public partial class ForwardedPortLocalTest : TestBase
{
}
}
@@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.SshClientTests
{
public partial class ForwardedPortRemoteTest : TestBase
{
}
}
@@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.SshClientTests
{
public partial class SshCommandTest : TestBase
{
}
}
@@ -1,5 +0,0 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("SSH.NET Tests .NET 3.5")]
[assembly: Guid("7c827904-40c1-4fe3-8ed1-8a729b8417a9")]
@@ -1,206 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18010
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Renci.SshNet.Tests.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Renci.SshNet.Tests.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to -----BEGIN DSA PRIVATE KEY-----
///Proc-Type: 4,ENCRYPTED
///DEK-Info: DES-EDE3-CBC,053105DCFC6132E7
///
///nVjIhJr3Eeqk0aBfyYK38B6cF0g35U2acgq5t3zG8fCM5JLSnFcmkkYvohbmCLva
///swNHMfmwumoX8Ga94cxGu6vW1qf+IMvgEU4U53DtJqRoeICMwIre1yUq2cCrV+gI
///qQ6MAVMDgfMs7HrPs5999m+KoDh7oYsA1l5q+axU/rqM4g3lySr/1oT6oAQx5Qp2
///2DYkZEwnX5+NTw6aoMXl2qgIHBVxa7wZRMp9L0yAlEFk8T7fMuPrLSAEUBghcIaP
///iBY1OY+M9MgDTTU56ZjLl+DfT3XfKzsZ3fmn1+bLqTRreiuS4/WF6xIa/DQu1sQd
///nnjYgnKYcTWSvWWK9AcIVSpoiW2y6FcPkMAIw54ABrzBp4Rz0//Ykwv2Ga7AZxxm
///P+lkxKf2RWnh406F [rest of string was truncated]&quot;;.
/// </summary>
internal static string DSA_KEY_WITH_PASS {
get {
return ResourceManager.GetString("DSA_KEY_WITH_PASS", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to -----BEGIN DSA PRIVATE KEY-----
///MIIBvAIBAAKBgQDdQrrwGvknwD+pb9Gpv/vDxj8yqFUg0cUuC/tkjm3u+lQj86Rw
///fA8RJOV+OP4Gtvs9zOSsxiuginoB/uEiT+6jbHvyvJeJp2fsDWLx/tVRXxpi8Nwe
///bfb455R0wVVZdqnFKsAZLrQAT589EUtLgyVAFQbUP5Fz6px8H8AG0qlybQIVALn7
///UOxnbFR7fDfZkq2Pc7ZCVegpAoGBANRKf9vezuz1aGUnUGWILHO09SibHK255fkr
///u4//zvCbdawWSZOoU+vMnplLUhNaVMoSyYE/TYOZvvbG9UtPvr8wZGdNPipvIXIB
///xlpr+FH0mnSx0qlaRy3PEoDRAmw6msRCzVYV3vZ8ZTEUdt+phuru+pn0W9EugzCM
///HikVVhJMAoGASHB5nNlWhpqvungn+otYyGKoVoATkRdRfSiUo3fb0mJLTmxrEhEH
///4UOFA/UFdQ0TYXXW0 [rest of string was truncated]&quot;;.
/// </summary>
internal static string DSA_KEY_WITHOUT_PASS {
get {
return ResourceManager.GetString("DSA_KEY_WITHOUT_PASS", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to oleg-centos.edc.renci.org.
/// </summary>
internal static string HOST {
get {
return ResourceManager.GetString("HOST", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to -----BEGIN DSA PRIVATE KEY-----
///MIIBugIBAAKBgQCG3ij/JvdNp+1VUsK2zmLM5QWNN4MRRm/FCOHDknDJrWdSKheO
///h6BbCgyFOw+k5qYtwXQnt3DpQfxPi7PIjr3tQJ9gB8LzqH2DwT2hMXm9VV2ImX2P
///12aj8hZVM99WOp/ma6+ivLSFHnwET19eaqS9SRb0ftIqZXpWGE3ddW07qQIVAOfT
///1OPSsvAnOsSrYc5HG5K3xIWlAoGAAzhTmi29+v0YTIsW2W1FihsexeAnpPPjYgRO
///eT6HreyTvh20UASxDP+IJ2Ba+41G6MU0isuAijp8Z4CCC4RpoS46Ksc3JtPsZiRy
///wAjwlb7JKGRBoY8V3aT47Xyx+iTSclZfzTmv0Z0bb56NZ6KEU8WRnks2d7tsb0fq
///JTAgLkkCgYBvt5EoxhlCwEUgm8j3nD4TLSRYt1lt6LVulBYA9qlV4F68b2cJUuOi
///YTV9H2SWRF6UF+GiR [rest of string was truncated]&quot;;.
/// </summary>
internal static string INVALID_KEY {
get {
return ResourceManager.GetString("INVALID_KEY", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to tester.
/// </summary>
internal static string PASSWORD {
get {
return ResourceManager.GetString("PASSWORD", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 22.
/// </summary>
internal static string PORT {
get {
return ResourceManager.GetString("PORT", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to proxy.oleg-centos.edc.renci.org.
/// </summary>
internal static string PROXY_HOST {
get {
return ResourceManager.GetString("PROXY_HOST", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 8123.
/// </summary>
internal static string PROXY_PORT {
get {
return ResourceManager.GetString("PROXY_PORT", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to -----BEGIN RSA PRIVATE KEY-----
///Proc-Type: 4,ENCRYPTED
///DEK-Info: DES-EDE3-CBC,B3475536EDD1B442
///
///Xa6Y7FYTfz19CMzPcVbCpBHEh8x3tnA9PutKEDNMwKbR+NVUvBx5fN1QjrLpltCr
///uX7yD3vLCeyihg4oaK3nTBZBcsB/1TZx+MlLgpvMfV1JKmbKCmebBZ3lUpsypHlG
///FpCY41miFwdHmBe6tuwL9XA3vz26eJwSgJGMkVN9EBvNbiOHinEPhSW0whzBfbv+
///OfseG73gvHc4jZS6Sw8h5VDBAmlldJEfkP/s/1/iTbCXFQ22xRb4Z6NilEyKiWpB
///nQviXmaucTWCEuNF5QDA7oV7Ugwm5cAXuBqFIs9ZGaKV4/XpfX1tClOLfB3Lguh+
///bbkwjPb0ztlhKa4gkwXiMs0S/lhoueXBae4QStM0qJBXHtFhhRYIn4JeIZ8CJ0k6
///SMP7QVfPf5aJIaa8 [rest of string was truncated]&quot;;.
/// </summary>
internal static string RSA_KEY_WITH_PASS {
get {
return ResourceManager.GetString("RSA_KEY_WITH_PASS", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to -----BEGIN RSA PRIVATE KEY-----
///MIIEogIBAAKCAQEA8ZsD8jgH7ySXnd4dprEFFkJ+zs1ne81E8febjR8hekiKrc+D
///9GjeEykchy0PsrsBrf2F8J3GtLNISVerkl+EnVh1E0pi9Vllc1vcpQHvBeNPG/jl
///9Dnum/DcaaMKLot+ARXjBuMX/xJVfnlgkvfpBvoq4QzQ6E27rOMbcPlvrN7KeYba
///orsTpDMUraHX5u99P1evvw7sOuNl3lc9YpIgmjHT6dWUGTqBx9T2SEKXBRVk2NNb
///d2UctQkr5BJn1gGehA+1KYS30FMiCSN8F8ZOlpYj1+K6xzs0srq1z30LailIyy7Q
///mYp739BJlOF3cVywdcFXGre35H2cJylcNV2e+QIBIwKCAQAbnK/+bM207j02nQqz
///9vlEX17zECkVdouJXiBn5kz4CEpdAcXwC/wfcmmpDHbSmQeBmVEi0DP3ZPJRhlzA
///RW493jlECIBWjd+1a [rest of string was truncated]&quot;;.
/// </summary>
internal static string RSA_KEY_WITHOUT_PASS {
get {
return ResourceManager.GetString("RSA_KEY_WITHOUT_PASS", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to tester.
/// </summary>
internal static string USERNAME {
get {
return ResourceManager.GetString("USERNAME", resourceCulture);
}
}
}
}
@@ -1,244 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="DSA_KEY_WITHOUT_PASS" xml:space="preserve">
<value>-----BEGIN DSA PRIVATE KEY-----
MIIBvAIBAAKBgQDdQrrwGvknwD+pb9Gpv/vDxj8yqFUg0cUuC/tkjm3u+lQj86Rw
fA8RJOV+OP4Gtvs9zOSsxiuginoB/uEiT+6jbHvyvJeJp2fsDWLx/tVRXxpi8Nwe
bfb455R0wVVZdqnFKsAZLrQAT589EUtLgyVAFQbUP5Fz6px8H8AG0qlybQIVALn7
UOxnbFR7fDfZkq2Pc7ZCVegpAoGBANRKf9vezuz1aGUnUGWILHO09SibHK255fkr
u4//zvCbdawWSZOoU+vMnplLUhNaVMoSyYE/TYOZvvbG9UtPvr8wZGdNPipvIXIB
xlpr+FH0mnSx0qlaRy3PEoDRAmw6msRCzVYV3vZ8ZTEUdt+phuru+pn0W9EugzCM
HikVVhJMAoGASHB5nNlWhpqvungn+otYyGKoVoATkRdRfSiUo3fb0mJLTmxrEhEH
4UOFA/UFdQ0TYXXW0wRX/amynT4iTEXAx0FjxUNK5ryxloeoXiXEH4FK7D8RtJO1
1UsaRrN+nqWiSTVAehl6tzoMCPargGcWeFlAZZnPGN76OD9J1GiKZj8CFQCl8SkF
GWfS+mH8xhLsxh1nI7rfJw==
-----END DSA PRIVATE KEY-----</value>
</data>
<data name="DSA_KEY_WITH_PASS" xml:space="preserve">
<value>-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,053105DCFC6132E7
nVjIhJr3Eeqk0aBfyYK38B6cF0g35U2acgq5t3zG8fCM5JLSnFcmkkYvohbmCLva
swNHMfmwumoX8Ga94cxGu6vW1qf+IMvgEU4U53DtJqRoeICMwIre1yUq2cCrV+gI
qQ6MAVMDgfMs7HrPs5999m+KoDh7oYsA1l5q+axU/rqM4g3lySr/1oT6oAQx5Qp2
2DYkZEwnX5+NTw6aoMXl2qgIHBVxa7wZRMp9L0yAlEFk8T7fMuPrLSAEUBghcIaP
iBY1OY+M9MgDTTU56ZjLl+DfT3XfKzsZ3fmn1+bLqTRreiuS4/WF6xIa/DQu1sQd
nnjYgnKYcTWSvWWK9AcIVSpoiW2y6FcPkMAIw54ABrzBp4Rz0//Ykwv2Ga7AZxxm
P+lkxKf2RWnh406FxBvBZzwB3rQeeM7QTg2IcFqGnlf005FIikp6SlyhZ/3M/Nl3
FW235vuO37jLCL8qosGt4NOWAstXaxDujfIb/Q+IYxUpWZrdiH5tM/mUXARK0Sjf
D8DHbFwAT2mUv1QxRXYJO1y4pENboEzT6LUqxJgE+ae/F/29g2RD9DhtwqKqWjhM
7jB0kNVZrz3qUKnoJHIozA==
-----END DSA PRIVATE KEY-----</value>
</data>
<data name="HOST" xml:space="preserve">
<value>oleg-centos.edc.renci.org</value>
</data>
<data name="INVALID_KEY" xml:space="preserve">
<value>-----BEGIN DSA PRIVATE KEY-----
MIIBugIBAAKBgQCG3ij/JvdNp+1VUsK2zmLM5QWNN4MRRm/FCOHDknDJrWdSKheO
h6BbCgyFOw+k5qYtwXQnt3DpQfxPi7PIjr3tQJ9gB8LzqH2DwT2hMXm9VV2ImX2P
12aj8hZVM99WOp/ma6+ivLSFHnwET19eaqS9SRb0ftIqZXpWGE3ddW07qQIVAOfT
1OPSsvAnOsSrYc5HG5K3xIWlAoGAAzhTmi29+v0YTIsW2W1FihsexeAnpPPjYgRO
eT6HreyTvh20UASxDP+IJ2Ba+41G6MU0isuAijp8Z4CCC4RpoS46Ksc3JtPsZiRy
wAjwlb7JKGRBoY8V3aT47Xyx+iTSclZfzTmv0Z0bb56NZ6KEU8WRnks2d7tsb0fq
JTAgLkkCgYBvt5EoxhlCwEUgm8j3nD4TLSRYt1lt6LVulBYA9qlV4F68b2cJUuOi
YTV9H2SWRF6UF+GiR5SajChveS106T9O+tepip+7V5YgFfW+ALOxwar+6V8VoUF4
xNvNTWtaw+wK8xsgxhhYDaWVhVLVhR40QmeQhx/BQm+EYkSSa9kkCQIURGd0R+Zj
tM7dZpB+reWl9L5e2L8=
-----END DSA PRIVATE KEY-----</value>
</data>
<data name="PASSWORD" xml:space="preserve">
<value>tester</value>
</data>
<data name="PORT" xml:space="preserve">
<value>22</value>
</data>
<data name="PROXY_HOST" xml:space="preserve">
<value>proxy.oleg-centos.edc.renci.org</value>
</data>
<data name="PROXY_PORT" xml:space="preserve">
<value>8123</value>
</data>
<data name="RSA_KEY_WITHOUT_PASS" xml:space="preserve">
<value>-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA8ZsD8jgH7ySXnd4dprEFFkJ+zs1ne81E8febjR8hekiKrc+D
9GjeEykchy0PsrsBrf2F8J3GtLNISVerkl+EnVh1E0pi9Vllc1vcpQHvBeNPG/jl
9Dnum/DcaaMKLot+ARXjBuMX/xJVfnlgkvfpBvoq4QzQ6E27rOMbcPlvrN7KeYba
orsTpDMUraHX5u99P1evvw7sOuNl3lc9YpIgmjHT6dWUGTqBx9T2SEKXBRVk2NNb
d2UctQkr5BJn1gGehA+1KYS30FMiCSN8F8ZOlpYj1+K6xzs0srq1z30LailIyy7Q
mYp739BJlOF3cVywdcFXGre35H2cJylcNV2e+QIBIwKCAQAbnK/+bM207j02nQqz
9vlEX17zECkVdouJXiBn5kz4CEpdAcXwC/wfcmmpDHbSmQeBmVEi0DP3ZPJRhlzA
RW493jlECIBWjd+1aZWPM2vGKJtTp2q802u6DOX9cbgFUcVB899ugFqDjREVxLqU
dBqhtjDJQ0sTPBVy2CBkrsrvLy7AZd4LlaqxpdTdpkD/auUxg4zdThHT/XeQ0V0G
3BS5vGehfqgkDOQpQSm7HexM+9GDJnnzMdNXjmWBPxZU49QAlxujZeZ1M2IgKwMq
eNkWAOnZJidfsfwYluSCi8OHPN2i1s/b7pgn6ffb50S/k2mmhTHxNChDdGTlW91G
6CFLAoGBAPlGA4qzZCG4SLBQicGhhXZlwaKKfTvWNi4xNPZeoJezC0G+yZZT7IIV
zCj83t3dteaRRw15e+7NuIXZx3zl2hANfEpBZwnS4sOekvbS9/S7cEVzOEk53jRU
TOtHRsvNxS2xK3RywqoaqzcPaK2Df917yzbqvEajMRudRPrsTvYdAoGBAPggB/kJ
+VxZf13JqV2KgrFoVvykJpRlw2F5+lkH69ON9gdl976J3TNJDqAmHeWFxBUL+6Lt
9TSpMq3fYueJXg9xaTkSYg177sPRGCmRLO5aneA4nJkIB6KHRXsR71C9D4fJK8Fi
YB5n5dnBUTBhkvaI6KsxcxDzEg2zAJEcn4WNAoGBAOsHf66pI+VHWnpakINdxvqa
dL3TCFz9K8UnFK3G7y/x9Kuz4qOuNsPLaLjua7s+wXL+ASn2MwW6pqoWekKPkxZz
HWqVb8dvEFIKipDyzIepadsU3UxbIfbTI/PG3FnCAw3S7nUbvtrl8eN07arpsxKn
63zr81iLPO4mkX7ezhs/AoGADi23UA8y0hO+Ip3PKeqoYei0g3cYJbysFDLbGwfE
VTtP4ypl7aF6WrO3sWFDiXVbqW5mJpFBNjWN3gzD0rdkdek5NnYUO0jpEoD6EQD7
QNH6ZJWFSpK+m5Kzg2AcTcGpHbO5W4H23SqCKbNGd8sPtlD3Wj1XCEhnbn9B3GgJ
HZMCgYEAjn9BH4fcobMaM15AV0s6sCEyr/vzn3QBfoIBqqqlipMqOtPDv8oyvGO4
5tSpMrTKf4e3YAMPA4TXRAiVLjeRYlhdj3He0LkAuZZabrHeRmWqjDruMWd1TcKZ
3o8DLgYbSH7eGXUJ+euM4spKr5OLkBEkmH7Of6Qxss2njvjVNTE=
-----END RSA PRIVATE KEY-----</value>
</data>
<data name="RSA_KEY_WITH_PASS" xml:space="preserve">
<value>-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,B3475536EDD1B442
Xa6Y7FYTfz19CMzPcVbCpBHEh8x3tnA9PutKEDNMwKbR+NVUvBx5fN1QjrLpltCr
uX7yD3vLCeyihg4oaK3nTBZBcsB/1TZx+MlLgpvMfV1JKmbKCmebBZ3lUpsypHlG
FpCY41miFwdHmBe6tuwL9XA3vz26eJwSgJGMkVN9EBvNbiOHinEPhSW0whzBfbv+
OfseG73gvHc4jZS6Sw8h5VDBAmlldJEfkP/s/1/iTbCXFQ22xRb4Z6NilEyKiWpB
nQviXmaucTWCEuNF5QDA7oV7Ugwm5cAXuBqFIs9ZGaKV4/XpfX1tClOLfB3Lguh+
bbkwjPb0ztlhKa4gkwXiMs0S/lhoueXBae4QStM0qJBXHtFhhRYIn4JeIZ8CJ0k6
SMP7QVfPf5aJIaa8t+SlpvtIFTIkEhTViOCl+udT04670DGwmJUgrJAV0r+/Ytf7
Mi+m3DagN7gGmCvYo+7r7EBl1G6e3hCSYm0rFxGOBesmCWriRoeRpxirWnkrns57
D57pEC1hg90IdycCGpiwqubGDKFljuMLiVd2w0onVhudShPszP+nJAaq18wUB+rE
mtBv+GlpqCITREB4lG2noP4r9P9lgrOTqmKvWjvUTQjfS3u0XO/1aQllKlwe97C7
mfOxcZQWy5F7+9CiWpDpomW7Eso89ja6uyupw4Q4gsm7EUacqOOaVxHrm3MVhYjE
Bfk9I5agKFqeHdjBUUP0DQ6X7JUEtb/Ri8ZrFnyT8sBG7JYnMTXfjPQqdR493cp2
hWI5reZLi4CCUqt4Pcmhm2vtwJz5HXChARPYq2C3DhdJHcdhxUr97rfTGE1w8mPY
JcwSFnNN47UBcDg6nvSfY3SJKV0gmmqz9fEw1pBoCrudJKw9U0vQrNoCEJOpEETG
4XojbAMsTr0Ps5fI2X1VbVYWtU1uyZxqF8KaTCTN1Paapmqaq4N+qIFrrXA+PTH+
dyaMLmYJ263Gy5eNkCZMeWLDFZ9WHX/Zx2ERMXfI6fyGImXkb6E0Dia+bB087BZP
9C5gHAvZIjv+FosZrViFqDfrV5hDXL6bO3+V3zieemRxRCTvMtk+RXUJDd50qIOW
gKNcSbevLPOyQH7eQbR+fU4KtJDUigbTFunSn2MZkDl2GDDlKI35wUAVr5yGsJbE
yiIQe5DgLGZcMiEpqbhuqSfuOw0cUlFVyKeNZ/Hr701HWngLt677IY8ExyuNbBfT
PRaes+hcjJ1QmJoRHZx9rQ3w0IpezCpRkRLRKJzzuQZOuwd95whKFXroFsdeaHxO
hS4PqlLbuSMLiSIaPSZM6Huc4kb5lqCaxg/SBlXTCX17Z/8TFoqV/wCJz17XnkH6
9WtKAC2TwKxiLZ2Qzwr2XV48lASugIOZkSW2qxM9ui+b1T9ICFKRGLn/UB//pOiG
270hNJDLB/BKRExjS+RXeOpdAIJB5XsAEp8h56ub9emhhf9tCEXOn7PN7HbMCnQh
7k8EpAG0h5StLUhY1HHvynVz2/qyMvZa/bIaaudL2565Z6nDU+iBxed7O1qrbRAH
Vakr7Sa3K5niCyH5kxdyO1t29l1ksBqpDUrj+vViFuLkd3XIiui8IA==
-----END RSA PRIVATE KEY-----</value>
</data>
<data name="USERNAME" xml:space="preserve">
<value>tester</value>
</data>
</root>
File diff suppressed because it is too large Load Diff
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Moq" version="4.2.1409.1722" targetFramework="net35" />
</packages>
@@ -1,8 +0,0 @@
using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.Classes.Common
{
public partial class ProxyExceptionTest : TestBase
{
}
}
@@ -1,103 +0,0 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Common;
using Renci.SshNet.Tests.Properties;
namespace Renci.SshNet.Tests.Classes
{
public partial class ForwardedPortLocalTest
{
[TestMethod]
[TestCategory("integration")]
[ExpectedException(typeof(SshConnectionException))]
public void Test_PortForwarding_Local_Without_Connecting()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
var port1 = new ForwardedPortLocal("localhost", 8084, "www.renci.org", 80);
client.AddForwardedPort(port1);
port1.Exception += delegate(object sender, ExceptionEventArgs e)
{
Assert.Fail(e.Exception.ToString());
};
port1.Start();
System.Threading.Tasks.Parallel.For(0, 100,
//new ParallelOptions
//{
// MaxDegreeOfParallelism = 20,
//},
(counter) =>
{
var start = DateTime.Now;
var req = HttpWebRequest.Create("http://localhost:8084");
using (var response = req.GetResponse())
{
var data = ReadStream(response.GetResponseStream());
var end = DateTime.Now;
Debug.WriteLine(string.Format("Request# {2}: Lenght: {0} Time: {1}", data.Length, (end - start), counter));
}
}
);
}
}
[TestMethod]
[TestCategory("integration")]
public void Test_PortForwarding_Local()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
var port1 = new ForwardedPortLocal("localhost", 8084, "www.renci.org", 80);
client.AddForwardedPort(port1);
port1.Exception += delegate(object sender, ExceptionEventArgs e)
{
Assert.Fail(e.Exception.ToString());
};
port1.Start();
System.Threading.Tasks.Parallel.For(0, 100,
//new ParallelOptions
//{
// MaxDegreeOfParallelism = 20,
//},
(counter) =>
{
var start = DateTime.Now;
var req = HttpWebRequest.Create("http://localhost:8084");
using (var response = req.GetResponse())
{
var data = ReadStream(response.GetResponseStream());
var end = DateTime.Now;
Debug.WriteLine(string.Format("Request# {2}: Length: {0} Time: {1}", data.Length, (end - start), counter));
}
}
);
}
}
private static byte[] ReadStream(Stream stream)
{
byte[] buffer = new byte[1024];
using (var ms = new MemoryStream())
{
while (true)
{
int read = stream.Read(buffer, 0, buffer.Length);
if (read > 0)
ms.Write(buffer, 0, read);
else
return ms.ToArray();
}
}
}
}
}
@@ -187,5 +187,97 @@ namespace Renci.SshNet.Tests.Classes
}
Assert.Inconclusive("TODO: Implement code to verify target");
}
#if FEATURE_TPL
[TestMethod]
[TestCategory("integration")]
[ExpectedException(typeof(SshConnectionException))]
public void Test_PortForwarding_Local_Without_Connecting()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
var port1 = new ForwardedPortLocal("localhost", 8084, "www.renci.org", 80);
client.AddForwardedPort(port1);
port1.Exception += delegate (object sender, ExceptionEventArgs e)
{
Assert.Fail(e.Exception.ToString());
};
port1.Start();
System.Threading.Tasks.Parallel.For(0, 100,
//new ParallelOptions
//{
// MaxDegreeOfParallelism = 20,
//},
(counter) =>
{
var start = DateTime.Now;
var req = HttpWebRequest.Create("http://localhost:8084");
using (var response = req.GetResponse())
{
var data = ReadStream(response.GetResponseStream());
var end = DateTime.Now;
Debug.WriteLine(string.Format("Request# {2}: Lenght: {0} Time: {1}", data.Length, (end - start), counter));
}
}
);
}
}
[TestMethod]
[TestCategory("integration")]
public void Test_PortForwarding_Local()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
var port1 = new ForwardedPortLocal("localhost", 8084, "www.renci.org", 80);
client.AddForwardedPort(port1);
port1.Exception += delegate (object sender, ExceptionEventArgs e)
{
Assert.Fail(e.Exception.ToString());
};
port1.Start();
System.Threading.Tasks.Parallel.For(0, 100,
//new ParallelOptions
//{
// MaxDegreeOfParallelism = 20,
//},
(counter) =>
{
var start = DateTime.Now;
var req = HttpWebRequest.Create("http://localhost:8084");
using (var response = req.GetResponse())
{
var data = ReadStream(response.GetResponseStream());
var end = DateTime.Now;
Debug.WriteLine(string.Format("Request# {2}: Length: {0} Time: {1}", data.Length, (end - start), counter));
}
}
);
}
}
private static byte[] ReadStream(System.IO.Stream stream)
{
byte[] buffer = new byte[1024];
using (var ms = new System.IO.MemoryStream())
{
while (true)
{
int read = stream.Read(buffer, 0, buffer.Length);
if (read > 0)
ms.Write(buffer, 0, read);
else
return ms.ToArray();
}
}
}
#endif // FEATURE_TPL
}
}
@@ -1,51 +0,0 @@
using System;
using System.Diagnostics;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Common;
using Renci.SshNet.Tests.Properties;
namespace Renci.SshNet.Tests.Classes
{
public partial class ForwardedPortRemoteTest
{
[TestMethod]
[TestCategory("integration")]
public void Test_PortForwarding_Remote()
{
// ******************************************************************
// ************* Tests are still in not finished ********************
// ******************************************************************
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
var port1 = new ForwardedPortRemote(8082, "www.renci.org", 80);
client.AddForwardedPort(port1);
port1.Exception += delegate(object sender, ExceptionEventArgs e)
{
Assert.Fail(e.Exception.ToString());
};
port1.Start();
var boundport = port1.BoundPort;
System.Threading.Tasks.Parallel.For(0, 5,
//new ParallelOptions
//{
// MaxDegreeOfParallelism = 1,
//},
(counter) =>
{
var cmd = client.CreateCommand(string.Format("wget -O- http://localhost:{0}", boundport));
var result = cmd.Execute();
var end = DateTime.Now;
Debug.WriteLine(string.Format("Length: {0}", result.Length));
}
);
Thread.Sleep(1000 * 100);
port1.Stop();
}
}
}
}
@@ -150,5 +150,46 @@ namespace Renci.SshNet.Tests.Classes
ForwardedPortRemote target = new ForwardedPortRemote(boundPort, host, port);
Assert.Inconclusive("TODO: Implement code to verify target");
}
#if FEATURE_TPL
[TestMethod]
[TestCategory("integration")]
public void Test_PortForwarding_Remote()
{
// ******************************************************************
// ************* Tests are still in not finished ********************
// ******************************************************************
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
var port1 = new ForwardedPortRemote(8082, "www.renci.org", 80);
client.AddForwardedPort(port1);
port1.Exception += delegate (object sender, ExceptionEventArgs e)
{
Assert.Fail(e.Exception.ToString());
};
port1.Start();
var boundport = port1.BoundPort;
System.Threading.Tasks.Parallel.For(0, 5,
//new ParallelOptions
//{
// MaxDegreeOfParallelism = 1,
//},
(counter) =>
{
var cmd = client.CreateCommand(string.Format("wget -O- http://localhost:{0}", boundport));
var result = cmd.Execute();
var end = DateTime.Now;
System.Diagnostics.Debug.WriteLine(string.Format("Length: {0}", result.Length));
}
);
Thread.Sleep(1000 * 100);
port1.Stop();
}
}
#endif // FEATURE_TPL
}
}
@@ -1,109 +0,0 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Common;
using Renci.SshNet.Tests.Properties;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace Renci.SshNet.Tests.Classes
{
/// <summary>
/// Provides SCP client functionality.
/// </summary>
public partial class ScpClientTest
{
[TestMethod]
[TestCategory("Scp")]
[TestCategory("integration")]
public void Test_Scp_File_20_Parallel_Upload_Download()
{
using (var scp = new ScpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
scp.Connect();
var uploadFilenames = new string[20];
for (int i = 0; i < uploadFilenames.Length; i++)
{
uploadFilenames[i] = Path.GetTempFileName();
this.CreateTestFile(uploadFilenames[i], 1);
}
Parallel.ForEach(uploadFilenames,
(filename) =>
{
scp.Upload(new FileInfo(filename), Path.GetFileName(filename));
});
Parallel.ForEach(uploadFilenames,
(filename) =>
{
scp.Download(Path.GetFileName(filename), new FileInfo(string.Format("{0}.down", filename)));
});
var result = from file in uploadFilenames
where
CalculateMD5(file) == CalculateMD5(string.Format("{0}.down", file))
select file;
scp.Disconnect();
Assert.IsTrue(result.Count() == uploadFilenames.Length);
}
}
[TestMethod]
[TestCategory("Scp")]
[TestCategory("integration")]
public void Test_Scp_File_Upload_Download_Events()
{
using (var scp = new ScpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
scp.Connect();
var uploadFilenames = new string[10];
for (int i = 0; i < uploadFilenames.Length; i++)
{
uploadFilenames[i] = Path.GetTempFileName();
this.CreateTestFile(uploadFilenames[i], 1);
}
var uploadedFiles = uploadFilenames.ToDictionary((filename) => Path.GetFileName(filename), (filename) => 0L);
var downloadedFiles = uploadFilenames.ToDictionary((filename) => string.Format("{0}.down", Path.GetFileName(filename)), (filename) => 0L);
scp.Uploading += delegate(object sender, ScpUploadEventArgs e)
{
uploadedFiles[e.Filename] = e.Uploaded;
};
scp.Downloading += delegate(object sender, ScpDownloadEventArgs e)
{
downloadedFiles[string.Format("{0}.down", e.Filename)] = e.Downloaded;
};
Parallel.ForEach(uploadFilenames,
(filename) =>
{
scp.Upload(new FileInfo(filename), Path.GetFileName(filename));
});
Parallel.ForEach(uploadFilenames,
(filename) =>
{
scp.Download(Path.GetFileName(filename), new FileInfo(string.Format("{0}.down", filename)));
});
var result = from uf in uploadedFiles
from df in downloadedFiles
where
string.Format("{0}.down", uf.Key) == df.Key
&& uf.Value == df.Value
select uf;
scp.Disconnect();
Assert.IsTrue(result.Count() == uploadFilenames.Length && uploadFilenames.Length == uploadedFiles.Count && uploadedFiles.Count == downloadedFiles.Count);
}
}
}
}
@@ -7,6 +7,9 @@ using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
#if FEATURE_TPL
using System.Threading.Tasks;
#endif // FEATURE_TPL
namespace Renci.SshNet.Tests.Classes
{
@@ -536,6 +539,102 @@ namespace Renci.SshNet.Tests.Classes
Assert.Inconclusive("A method that does not return a value cannot be verified.");
}
#if FEATURE_TPL
[TestMethod]
[TestCategory("Scp")]
[TestCategory("integration")]
public void Test_Scp_File_20_Parallel_Upload_Download()
{
using (var scp = new ScpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
scp.Connect();
var uploadFilenames = new string[20];
for (int i = 0; i < uploadFilenames.Length; i++)
{
uploadFilenames[i] = Path.GetTempFileName();
this.CreateTestFile(uploadFilenames[i], 1);
}
Parallel.ForEach(uploadFilenames,
(filename) =>
{
scp.Upload(new FileInfo(filename), Path.GetFileName(filename));
});
Parallel.ForEach(uploadFilenames,
(filename) =>
{
scp.Download(Path.GetFileName(filename), new FileInfo(string.Format("{0}.down", filename)));
});
var result = from file in uploadFilenames
where
CalculateMD5(file) == CalculateMD5(string.Format("{0}.down", file))
select file;
scp.Disconnect();
Assert.IsTrue(result.Count() == uploadFilenames.Length);
}
}
[TestMethod]
[TestCategory("Scp")]
[TestCategory("integration")]
public void Test_Scp_File_Upload_Download_Events()
{
using (var scp = new ScpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
scp.Connect();
var uploadFilenames = new string[10];
for (int i = 0; i < uploadFilenames.Length; i++)
{
uploadFilenames[i] = Path.GetTempFileName();
this.CreateTestFile(uploadFilenames[i], 1);
}
var uploadedFiles = uploadFilenames.ToDictionary((filename) => Path.GetFileName(filename), (filename) => 0L);
var downloadedFiles = uploadFilenames.ToDictionary((filename) => string.Format("{0}.down", Path.GetFileName(filename)), (filename) => 0L);
scp.Uploading += delegate (object sender, ScpUploadEventArgs e)
{
uploadedFiles[e.Filename] = e.Uploaded;
};
scp.Downloading += delegate (object sender, ScpDownloadEventArgs e)
{
downloadedFiles[string.Format("{0}.down", e.Filename)] = e.Downloaded;
};
Parallel.ForEach(uploadFilenames,
(filename) =>
{
scp.Upload(new FileInfo(filename), Path.GetFileName(filename));
});
Parallel.ForEach(uploadFilenames,
(filename) =>
{
scp.Download(Path.GetFileName(filename), new FileInfo(string.Format("{0}.down", filename)));
});
var result = from uf in uploadedFiles
from df in downloadedFiles
where
string.Format("{0}.down", uf.Key) == df.Key
&& uf.Value == df.Value
select uf;
scp.Disconnect();
Assert.IsTrue(result.Count() == uploadFilenames.Length && uploadFilenames.Length == uploadedFiles.Count && uploadedFiles.Count == downloadedFiles.Count);
}
}
#endif // FEATURE_TPL
protected static string CalculateMD5(string fileName)
{
using (var file = new FileStream(fileName, FileMode.Open))
@@ -1,13 +0,0 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.Classes
{
/// <summary>
/// Contains operation for working with SSH Shell.
/// </summary>
[TestClass]
public class ShellStreamTest : TestBase
{
}
}
@@ -1,100 +0,0 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Renci.SshNet.Tests.Properties;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
namespace Renci.SshNet.Tests.Classes
{
public partial class SshCommandTest
{
public void Test_MultipleThread_Example_MultipleConnections()
{
var host = Resources.HOST;
var username = Resources.USERNAME;
var password = Resources.PASSWORD;
try
{
#region Example SshCommand RunCommand Parallel
System.Threading.Tasks.Parallel.For(0, 10000,
() =>
{
var client = new SshClient(host, username, password);
client.Connect();
return client;
},
(int counter, ParallelLoopState pls, SshClient client) =>
{
var result = client.RunCommand("echo 123");
Debug.WriteLine(string.Format("TestMultipleThreadMultipleConnections #{0}", counter));
return client;
},
(SshClient client) =>
{
client.Disconnect();
client.Dispose();
}
);
#endregion
}
catch (Exception exp)
{
Assert.Fail(exp.ToString());
}
}
//[TestMethod]
public void Test_MultipleThread_10000_MultipleConnections()
{
try
{
System.Threading.Tasks.Parallel.For(0, 10000,
() =>
{
var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD);
client.Connect();
return client;
},
(int counter, ParallelLoopState pls, SshClient client) =>
{
var result = ExecuteTestCommand(client);
Debug.WriteLine(string.Format("TestMultipleThreadMultipleConnections #{0}", counter));
Assert.IsTrue(result);
return client;
},
(SshClient client) =>
{
client.Disconnect();
client.Dispose();
}
);
}
catch (Exception exp)
{
Assert.Fail(exp.ToString());
}
}
//[TestMethod]
public void Test_MultipleThread_10000_MultipleSessions()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
System.Threading.Tasks.Parallel.For(0, 10000,
(counter) =>
{
var result = ExecuteTestCommand(client);
Debug.WriteLine(string.Format("TestMultipleThreadMultipleConnections #{0}", counter));
Assert.IsTrue(result);
}
);
client.Disconnect();
}
}
}
}
@@ -6,6 +6,10 @@ using System;
using System.IO;
using System.Text;
using System.Threading;
#if FEATURE_TPL
using System.Diagnostics;
using System.Threading.Tasks;
#endif // FEATURE_TPL
namespace Renci.SshNet.Tests.Classes
{
@@ -622,6 +626,100 @@ namespace Renci.SshNet.Tests.Classes
Assert.Inconclusive("Verify the correctness of this test method.");
}
#if FEATURE_TPL
[TestMethod]
[TestCategory("integration")]
public void Test_MultipleThread_Example_MultipleConnections()
{
var host = Resources.HOST;
var username = Resources.USERNAME;
var password = Resources.PASSWORD;
try
{
#region Example SshCommand RunCommand Parallel
System.Threading.Tasks.Parallel.For(0, 10000,
() =>
{
var client = new SshClient(host, username, password);
client.Connect();
return client;
},
(int counter, ParallelLoopState pls, SshClient client) =>
{
var result = client.RunCommand("echo 123");
Debug.WriteLine(string.Format("TestMultipleThreadMultipleConnections #{0}", counter));
return client;
},
(SshClient client) =>
{
client.Disconnect();
client.Dispose();
}
);
#endregion
}
catch (Exception exp)
{
Assert.Fail(exp.ToString());
}
}
[TestMethod]
[TestCategory("integration")]
public void Test_MultipleThread_10000_MultipleConnections()
{
try
{
System.Threading.Tasks.Parallel.For(0, 10000,
() =>
{
var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD);
client.Connect();
return client;
},
(int counter, ParallelLoopState pls, SshClient client) =>
{
var result = ExecuteTestCommand(client);
Debug.WriteLine(string.Format("TestMultipleThreadMultipleConnections #{0}", counter));
Assert.IsTrue(result);
return client;
},
(SshClient client) =>
{
client.Disconnect();
client.Dispose();
}
);
}
catch (Exception exp)
{
Assert.Fail(exp.ToString());
}
}
[TestMethod]
[TestCategory("integration")]
public void Test_MultipleThread_10000_MultipleSessions()
{
using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
{
client.Connect();
System.Threading.Tasks.Parallel.For(0, 10000,
(counter) =>
{
var result = ExecuteTestCommand(client);
Debug.WriteLine(string.Format("TestMultipleThreadMultipleConnections #{0}", counter));
Assert.IsTrue(result);
}
);
client.Disconnect();
}
}
#endif // FEATURE_TPL
private static bool ExecuteTestCommand(SshClient s)
{
var testValue = Guid.NewGuid().ToString();
@@ -127,7 +127,6 @@ namespace Renci.SshNet.Tests.Common
else
{
SignalDisconnected(handler);
handler.Shutdown(SocketShutdown.Send);
}
}
@@ -1,5 +0,0 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("SSH.NET Tests .NET 4.0")]
[assembly: Guid("defb66b2-a4b9-40ca-b205-2183d84b7323")]
+110 -725
View File
@@ -1,736 +1,121 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{C45379B9-17B1-4E89-BC2E-6D41726413E8}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Renci.SshNet.Tests</RootNamespace>
<AssemblyName>Renci.SshNet.Tests</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_THREAD_COUNTDOWNEVENT</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>5</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;FEATURE_THREAD_COUNTDOWNEVENT</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>0</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<StartupObject>
</StartupObject>
</PropertyGroup>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>..\Renci.SshNet.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '15.0' ">
<TargetFrameworks>net35;net40;netcoreapp2.1;netcoreapp2.2</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '16.0' ">
<TargetFrameworks>net35;net40;netcoreapp2.1;netcoreapp2.2;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'net35' ">
<DefineConstants></DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'net40' ">
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.2' ">
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.0' ">
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="Moq">
<HintPath>..\..\packages\Moq.4.2.1409.1722\lib\net40\Moq.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Numerics" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
<Visible>False</Visible>
</CodeAnalysisDependentAssemblyPaths>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\Abstractions\CryptoAbstraction_GenerateRandom.cs">
<Link>Classes\Abstractions\CryptoAbstraction_GenerateRandom.cs</Link>
</Compile>
<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>
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\ForwardedPortStatusTest_Started.cs">
<Link>Classes\ForwardedPortStatusTest_Started.cs</Link>
</Compile>
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\ForwardedPortStatusTest_Starting.cs">
<Link>Classes\ForwardedPortStatusTest_Starting.cs</Link>
</Compile>
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\ForwardedPortStatusTest_Stopped.cs">
<Link>Classes\ForwardedPortStatusTest_Stopped.cs</Link>
</Compile>
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\ForwardedPortStatusTest_Stopping.cs">
<Link>Classes\ForwardedPortStatusTest_Stopping.cs</Link>
</Compile>
<Compile Include="..\..\test\Renci.SshNet.Shared.Tests\SshMessageFactoryTest.cs">
<Link>Classes\SshMessageFactoryTest.cs</Link>
</Compile>
<Compile Include="Classes\BaseClientTest_Connected_KeepAliveInterval_NotNegativeOne.cs" />
<Compile Include="Classes\BaseClientTest_Connected_KeepAliveInterval_NegativeOne.cs" />
<Compile Include="Classes\BaseClientTest_Connected_KeepAlivesNotSentConcurrently.cs" />
<Compile Include="Classes\BaseClientTest_Connect_OnConnectedThrowsException.cs" />
<Compile Include="Classes\BaseClientTest_Disconnected_KeepAliveInterval_NotNegativeOne.cs" />
<Compile Include="Classes\BaseClientTest_NotConnected_KeepAliveInterval_NotNegativeOne.cs" />
<Compile Include="Classes\Channels\ChannelDirectTcpipTest.cs" />
<Compile Include="Classes\Channels\ChannelDirectTcpipTest_Dispose_SessionIsConnectedAndChannelIsOpen.cs" />
<Compile Include="Classes\Channels\ChannelSessionTestBase.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_Disposed.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_ChannelCloseAndChannelEofReceived_SendChannelCloseMessageFailure.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_ChannelCloseAndChannelEofReceived_SendChannelCloseMessageSuccess.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_ChannelCloseAndChannelEofReceived_DisposeInEventHandler.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_ChannelCloseReceived_SendChannelCloseMessageFailure.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_ChannelCloseReceived_SendChannelCloseMessageSuccess.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_ChannelEofReceived_SendChannelCloseMessageFailure.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_ChannelEofReceived_SendChannelCloseMessageSuccess.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_NoChannelCloseOrChannelEofReceived_SendChannelEofMessageFailure.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsNotConnectedAndChannelIsOpen_ChannelCloseAndChannelEofReceived.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsNotConnectedAndChannelIsOpen_ChannelCloseReceived.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsNotConnectedAndChannelIsOpen_NoChannelCloseOrChannelEofReceived.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Disposed_Closed.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_OnSessionChannelCloseReceived_SessionIsConnectedAndChannelIsOpen.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Dispose_SessionIsConnectedAndChannelIsOpen_NoChannelCloseOrChannelEofReceived.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Open_ExceptionWaitingOnOpenConfirmation.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Open_OnOpenFailureReceived_NoRetriesAvailable.cs" />
<Compile Include="Classes\Channels\ChannelSessionTest_Open_OnOpenFailureReceived_RetriesAvalable.cs" />
<Compile Include="Classes\Channels\ChannelTestBase.cs" />
<Compile Include="Classes\Channels\ChannelTest_Dispose_SessionIsConnectedAndChannelIsOpen_EofNotReceived_SendEofInvoked.cs" />
<Compile Include="Classes\Channels\ChannelTest_Dispose_SessionIsConnectedAndChannelIsOpen_EofReceived.cs" />
<Compile Include="Classes\Channels\ChannelTest_Dispose_SessionIsConnectedAndChannelIsOpen_EofReceived_DisconnectWaitingForChannelCloseMessage.cs" />
<Compile Include="Classes\Channels\ChannelTest_Dispose_SessionIsConnectedAndChannelIsOpen_EofReceived_TimeoutWaitingForChannelCloseMessage.cs" />
<Compile Include="Classes\Channels\ChannelTest_Dispose_SessionIsNotConnectedAndChannelIsOpen.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelCloseReceived_SessionIsConnectedAndChannelIsOpen_DisposeChannelInClosedEventHandler.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelCloseReceived_OnClose_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelCloseReceived_SessionIsConnectedAndChannelIsOpen_EofReceived.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelDataReceived_OnData_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_Dispose_SessionIsConnectedAndChannelIsOpen_EofNotReceived.cs" />
<Compile Include="Classes\Channels\ChannelTest_Dispose_SessionIsConnectedAndChannelIsNotOpen.cs" />
<Compile Include="Classes\Channels\ChannelTest_Dispose_SessionIsNotConnectedAndChannelIsNotOpen.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelCloseReceived_SessionIsConnectedAndChannelIsOpen_EofNotReceived.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelEofReceived_OnEof_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelExtendedDataReceived_OnExtendedData_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelFailureReceived_OnFailure_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelRequestReceived_OnRequest_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelSuccessReceived_OnSuccess_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionChannelWindowAdjustReceived_OnWindowAdjust_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionDisconnected_OnDisconnected_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionDisconnected_SessionIsConnectedAndChannelIsOpen.cs" />
<Compile Include="Classes\Channels\ChannelStub.cs" />
<Compile Include="Classes\Channels\ChannelTest_OnSessionErrorOccurred_OnErrorOccurred_Exception.cs" />
<Compile Include="Classes\Channels\ChannelTest_SendEof_ChannelIsNotOpen.cs" />
<Compile Include="Classes\Channels\ChannelTest_SendEof_ChannelIsOpen.cs" />
<Compile Include="Classes\Channels\ClientChannelStub.cs" />
<Compile Include="Classes\Channels\ClientChannelTest_OnSessionChannelOpenConfirmationReceived_OnOpenConfirmation_Exception.cs" />
<Compile Include="Classes\Channels\ClientChannelTest_OnSessionChannelOpenFailureReceived_OnOpenFailure_Exception.cs" />
<Compile Include="Classes\CipherInfoTest.cs" />
<Compile Include="Classes\ClientAuthenticationTest.cs" />
<Compile Include="Classes\ClientAuthenticationTestBase.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Failure_SingleList_AuthenticationMethodFailed.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Failure_SingleList_AuthenticationMethodNotConfigured.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Failure_MultiList_AllAllowedAuthenticationsHaveReachedPartialSuccessLimit.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_DifferentAllowedAuthenticationsAfterPartialSuccess.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_PartialSuccessLimitReachedFollowedByFailureInAlternateBranch.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_PartialSuccessLimitReachedFollowedByFailureInAlternateBranch2.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_PartialSuccessLimitReachedFollowedByFailureInSameBranch.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_PartialSuccessLimitReachedFollowedBySuccessInAlternateBranch.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_PartialSuccessLimitReachedFollowedBySuccessInSameBranch.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_PostponePartialAccessAuthenticationMethod.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_SameAllowedAuthenticationsAfterPartialSuccess.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_MultiList_SkipFailedAuthenticationMethod.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_SingleList_SameAllowedAuthenticationAfterPartialSuccess.cs" />
<Compile Include="Classes\ClientAuthenticationTest_Success_SingleList_SameAllowedAuthenticationAfterPartialSuccess_PartialSuccessLimitReached.cs" />
<Compile Include="Classes\Common\CountdownEventTest.cs" />
<Compile Include="Classes\Common\CountdownEventTest_Dispose_NotSet.cs" />
<Compile Include="Classes\Common\CountdownEventTest_Dispose_Set.cs" />
<Compile Include="Classes\Common\ExtensionsTest_Concat.cs" />
<Compile Include="Classes\Common\ExtensionsTest_IsEqualTo_ByteArray.cs" />
<Compile Include="Classes\Common\ExtensionsTest_Reverse.cs" />
<Compile Include="Classes\Common\ExtensionsTest_Take_Count.cs" />
<Compile Include="Classes\Common\ExtensionsTest_Take_OffsetAndCount.cs" />
<Compile Include="Classes\Common\ExtensionsTest_ToBigInteger2.cs" />
<Compile Include="Classes\Common\ExtensionsTest_Pad.cs" />
<Compile Include="Classes\Common\ExtensionsTest_TrimLeadingZeros.cs" />
<Compile Include="Classes\Common\PackTest.cs" />
<Compile Include="Classes\Common\PosixPathTest_CreateAbsoluteOrRelativeFilePath.cs" />
<Compile Include="Classes\Common\PosixPathTest_GetDirectoryName.cs" />
<Compile Include="Classes\Common\PosixPathTest_GetFileName.cs" />
<Compile Include="Classes\ConnectionInfoTest_Authenticate_Failure.cs" />
<Compile Include="Classes\ConnectionInfoTest_Authenticate_Success.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Dispose_PortStarted_ChannelBound.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_SessionErrorOccurred_ChannelBound.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Start_SessionNotConnected.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Start_SessionNull.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Stop_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Stop_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Stop_PortStarted_ChannelBound.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Stop_PortStarted_ChannelNotBound.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Stop_PortStopped.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Dispose_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Dispose_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Dispose_PortStarted_ChannelNotBound.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Dispose_PortStopped.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Started_SocketSendShutdownImmediately.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Started_SocketVersionNotSupported.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Start_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Start_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Start_PortStopped.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest_Start_PortStarted.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Dispose_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Dispose_PortDisposed_NeverStarted.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Dispose_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Dispose_PortStarted_ChannelNotBound.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Dispose_PortStopped.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Start_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Start_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Start_PortStarted.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Start_PortStopped.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Start_SessionNotConnected.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Start_SessionNull.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Stop_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Stop_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Stop_PortStarted_ChannelBound.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Stop_PortStarted_ChannelNotBound.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Stop_PortStopped.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Dispose_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Dispose_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Dispose_PortStarted_ChannelBound.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Dispose_PortStopped.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Started.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Start_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Start_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Start_PortStarted.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Start_PortStopped.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Start_SessionNotConnected.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Start_SessionNull.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Stop_PortDisposed.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Stop_PortNeverStarted.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Stop_PortStarted_ChannelBound.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest_Stop_PortStopped.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeDhGroupExchangeGroupBuilder.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeDhGroupExchangeReplyBuilder.cs" />
<Compile Include="Classes\NetConfClientTest_Connect_NetConfSessionConnectFailure.cs" />
<Compile Include="Classes\NetConfClientTest_Dispose_Connected.cs" />
<Compile Include="Classes\NetConfClientTest_Dispose_Disconnected.cs" />
<Compile Include="Classes\NetConfClientTest_Dispose_Disposed.cs" />
<Compile Include="Classes\NetConfClientTest_Finalize_Connected.cs" />
<Compile Include="Classes\PipeStreamTest_Dispose.cs" />
<Compile Include="Classes\RemotePathDoubleQuoteTransformationTest.cs" />
<Compile Include="Classes\RemotePathShellQuoteTransformationTest.cs" />
<Compile Include="Classes\ScpClientTestBase.cs" />
<Compile Include="Classes\ScpClientTest_Download_PathAndDirectoryInfo_SendExecRequestReturnsFalse.cs" />
<Compile Include="Classes\ScpClientTest_Download_PathAndFileInfo_SendExecRequestReturnsFalse.cs" />
<Compile Include="Classes\ScpClientTest_Download_PathAndStream_SendExecRequestReturnsFalse.cs" />
<Compile Include="Classes\ScpClientTest_Upload_DirectoryInfoAndPath_SendExecRequestReturnsFalse.cs" />
<Compile Include="Classes\ScpClientTest_Upload_FileInfoAndPath_SendExecRequestReturnsFalse.cs" />
<Compile Include="Classes\ScpClientTest_Upload_FileInfoAndPath_Success.cs" />
<Compile Include="Classes\ScpClientTest_Upload_StreamAndPath_SendExecRequestReturnsFalse.cs" />
<Compile Include="Classes\Security\AlgorithmTest.cs" />
<Compile Include="Classes\Security\CertificateHostAlgorithmTest.cs" />
<Compile Include="Classes\Security\Cryptography\BlockCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\CipherDigitalSignatureTest.cs" />
<Compile Include="Classes\Security\Cryptography\CipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\CipherModeTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\CipherPaddingTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\Modes\CbcCipherModeTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\Modes\CfbCipherModeTest.cs" />
<Compile Include="Classes\Messages\Authentication\BannerMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelCloseMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelDataMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelEofMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelExtendedDataMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelFailureMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelOpenConfirmationMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelOpenFailureMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelOpenInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelOpen\ChannelOpenMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelSuccessMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelWindowAdjustMessageTest.cs" />
<Compile Include="Classes\Common\AsyncResultTest.cs" />
<Compile Include="Classes\Common\AuthenticationBannerEventArgsTest.cs" />
<Compile Include="Classes\Common\AuthenticationPasswordChangeEventArgsTest.cs" />
<Compile Include="Classes\Common\AuthenticationPromptEventArgsTest.cs" />
<Compile Include="Classes\Common\AuthenticationPromptTest.cs" />
<Compile Include="Classes\Common\BigIntegerTest.cs" />
<Compile Include="Classes\Channels\ChannelForwardedTcpipTest_Dispose_SessionIsConnectedAndChannelIsOpen.cs" />
<Compile Include="Classes\CommandAsyncResultTest.cs" />
<Compile Include="Classes\Common\ASCIIEncodingTest.cs" />
<Compile Include="Classes\Common\ChannelDataEventArgsTest.cs" />
<Compile Include="Classes\Common\ChannelEventArgsTest.cs" />
<Compile Include="Classes\Common\ChannelOpenFailedEventArgsTest.cs" />
<Compile Include="Classes\Common\ChannelRequestEventArgsTest.cs" />
<Compile Include="Classes\Common\PipeStreamTest.cs" />
<Compile Include="Classes\Common\PortForwardEventArgsTest.cs" />
<Compile Include="Classes\Compression\ZlibTest.cs" />
<Compile Include="Classes\ConnectionInfoTest.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateClientAuthentication.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateSftpFileReader_EndLStatThrowsSshException.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateSftpFileReader_FileSizeIsAlmostSixTimesGreaterThanChunkSize.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateSftpFileReader_FileSizeIsEqualToChunkSize.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateSftpFileReader_FileSizeIsLessThanChunkSize.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateSftpFileReader_FileSizeIsExactlyFiveTimesGreaterThanChunkSize.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateSftpFileReader_FileSizeIsLittleMoreThanFiveTimesGreaterThanChunkSize.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateSftpFileReader_FileSizeIsMoreThanTenTimesGreaterThanChunkSize.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateSftpFileReader_FileSizeIsZero.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateShellStream_ChannelOpenThrowsException.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateShellStream_SendPseudoTerminalRequestReturnsFalse.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateShellStream_SendPseudoTerminalRequestThrowsException.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateShellStream_SendShellRequestReturnsFalse.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateShellStream_SendShellRequestThrowsException.cs" />
<Compile Include="Classes\ServiceFactoryTest_CreateShellStream_Success.cs" />
<Compile Include="Classes\SessionTest_Connected.cs" />
<Compile Include="Classes\SessionTest_ConnectedBase.cs" />
<Compile Include="Classes\SessionTest_Connected_ConnectionReset.cs" />
<Compile Include="Classes\SessionTest_Connected_Disconnect.cs" />
<Compile Include="Classes\SessionTest_Connected_GlobalRequestMessageAfterAuthenticationRace.cs" />
<Compile Include="Classes\SessionTest_Connected_ServerAndClientDisconnectRace.cs" />
<Compile Include="Classes\SessionTest_Connected_ServerSendsDisconnectMessage.cs" />
<Compile Include="Classes\SessionTest_Connected_ServerSendsBadPacket.cs" />
<Compile Include="Classes\SessionTest_Connected_ServerSendsDisconnectMessageAndShutsDownSocket.cs" />
<Compile Include="Classes\SessionTest_Connected_ServerSendsUnsupportedMessageType.cs" />
<Compile Include="Classes\SessionTest_Connected_ServerShutsDownSendAfterSendingIncompletePacket.cs" />
<Compile Include="Classes\SessionTest_Connected_ServerShutsDownSocket.cs" />
<Compile Include="Classes\SessionTest_NotConnected.cs" />
<Compile Include="Classes\SessionTest_SocketConnected_BadPacketAndDispose.cs" />
<Compile Include="Classes\SftpClientTest.SynchronizeDirectories.cs" />
<Compile Include="Classes\SftpClientTest.cs" />
<Compile Include="Classes\SftpClientTest.Download.cs" />
<Compile Include="Classes\SftpClientTest.Upload.cs" />
<Compile Include="Classes\SftpClientTest.RenameFile.cs" />
<Compile Include="Classes\SftpClientTest.ListDirectory.cs" />
<Compile Include="Classes\SftpClientTest.DeleteDirectory.cs" />
<Compile Include="Classes\SftpClientTest.DeleteFile.cs" />
<Compile Include="Classes\SftpClientTest.CreateDirectory.cs" />
<Compile Include="Classes\ForwardedPortRemote.NET40.cs" />
<Compile Include="Classes\ExpectActionTest.cs" />
<Compile Include="Classes\ForwardedPortDynamicTest.cs" />
<Compile Include="Classes\ForwardedPortLocalTest.cs" />
<Compile Include="Classes\ForwardedPortRemoteTest.cs" />
<Compile Include="Classes\KeyboardInteractiveAuthenticationMethodTest.cs" />
<Compile Include="Classes\KeyboardInteractiveConnectionInfoTest.cs" />
<Compile Include="Classes\MessageEventArgsTest.cs" />
<Compile Include="Classes\Messages\Authentication\InformationRequestMessageTest.cs" />
<Compile Include="Classes\Messages\Authentication\InformationResponseMessageTest.cs" />
<Compile Include="Classes\Messages\Authentication\PasswordChangeRequiredMessageTest.cs" />
<Compile Include="Classes\Messages\Authentication\PublicKeyMessageTest.cs" />
<Compile Include="Classes\Messages\Authentication\RequestMessageHostTest.cs" />
<Compile Include="Classes\Messages\Authentication\RequestMessageKeyboardInteractiveTest.cs" />
<Compile Include="Classes\Messages\Authentication\RequestMessageNoneTest.cs" />
<Compile Include="Classes\Messages\Authentication\RequestMessagePasswordTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelOpen\DirectTcpipChannelInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelOpen\ForwardedTcpipChannelInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelOpen\SessionChannelOpenInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelOpen\X11ChannelOpenInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\BreakRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\ChannelRequestMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\EnvironmentVariableRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\ExecRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\ExitSignalRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\ExitStatusRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\PseudoTerminalInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\ShellRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\SignalRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\SubsystemRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\WindowChangeRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\X11ForwardingRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\XonXoffRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeDhGroupExchangeInitTest.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeDhGroupExchangeReplyTest.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeDhGroupExchangeRequestTest.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeDhInitMessageTest.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeInitMessageTest.cs" />
<Compile Include="Classes\NetConfClientTest.cs" />
<Compile Include="Classes\NoneAuthenticationMethodTest.cs" />
<Compile Include="Classes\PasswordAuthenticationMethodTest.cs" />
<Compile Include="Classes\PasswordConnectionInfoTest.cs" />
<Compile Include="Classes\PrivateKeyAuthenticationMethodTest.cs" />
<Compile Include="Classes\PrivateKeyConnectionInfoTest.cs" />
<Compile Include="Classes\PrivateKeyFileTest.cs" />
<Compile Include="Classes\ScpClientTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\AesCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\Arc4CipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\BlowfishCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\CastCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\DesCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\RsaCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\SerpentCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\TripleDesCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\TwofishCipherTest.cs" />
<Compile Include="Classes\Security\Cryptography\DsaDigitalSignatureTest.cs" />
<Compile Include="Classes\Security\Cryptography\DsaKeyTest.cs" />
<Compile Include="Classes\Security\Cryptography\HMacTest.cs" />
<Compile Include="Classes\Security\Cryptography\RsaDigitalSignatureTest.cs" />
<Compile Include="Classes\Security\Cryptography\RsaKeyTest.cs" />
<Compile Include="Classes\Security\KeyExchangeDiffieHellmanGroup14Sha1Test.cs" />
<Compile Include="Classes\Security\KeyExchangeDiffieHellmanGroupExchangeSha1Test.cs" />
<Compile Include="Classes\Security\KeyHostAlgorithmTest.cs" />
<Compile Include="Classes\SessionTest.cs" />
<Compile Include="Classes\SftpClientTest.ChangeDirectory.cs" />
<Compile Include="Classes\SftpClientTest.Connect.cs" />
<Compile Include="Classes\SftpClientTest_Connect_SftpSessionConnectFailure.cs" />
<Compile Include="Classes\SftpClientTest_Dispose_Connected.cs" />
<Compile Include="Classes\SftpClientTest_Dispose_Disconnected.cs" />
<Compile Include="Classes\SftpClientTest_Dispose_Disposed.cs" />
<Compile Include="Classes\SftpClientTest_Finalize_Connected.cs" />
<Compile Include="Classes\Sftp\SftpDataResponseBuilder.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTestBase.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_DisposeShouldUnblockReadAndReadAhead.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_Dispose_SftpSessionIsNotOpen.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_Dispose_SftpSessionIsOpen_BeginCloseThrowsException.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_Dispose_SftpSessionIsOpen_EndCloseThrowsException.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_LastChunkBeforeEofIsComplete.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_LastChunkBeforeEofIsPartial.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_PreviousChunkIsIncompleteAndEofIsNotReached.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_PreviousChunkIsIncompleteAndEofIsReached.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_ReadAheadEndInvokeException_DiscardsFurtherReadAheads.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_ReadAheadEndInvokeException_PreventsFurtherReadAheads.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_ReadAheadBeginReadException.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_ReadBackBeginReadException.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_ReadBackEndInvokeException.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_Read_ReahAheadExceptionInBeginRead.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_Read_ReadAheadExceptionInWaitOnHandle_ChunkAvailable.cs" />
<Compile Include="Classes\Sftp\SftpFileReaderTest_Read_ReadAheadExceptionInWaitOnHandle_NoChunkAvailable.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTestBase.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanRead_Closed_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanRead_Closed_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanRead_Closed_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanRead_Disposed_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanRead_Disposed_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanRead_Disposed_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanWrite_Closed_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanWrite_Closed_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanWrite_Closed_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanWrite_Disposed_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanWrite_Disposed_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_CanWrite_Disposed_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Close_Closed.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Close_Disposed.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Close_SessionNotOpen.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Close_SessionOpen.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileAccessInvalid.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreateNew_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessReadWrite_FileDoesNotExist.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessReadWrite_FileExists.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessWrite_FileDoesNotExist.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeCreate_FileAccessWrite_FileExists.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpenOrCreate_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeOpen_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeTruncate_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeInvalid.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Dispose_Closed.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Dispose_SessionNotOpen.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Dispose_SessionOpen.cs" />
<Compile Include="Classes\Sftp\Requests\ExtendedRequests\FStatVfsRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\ExtendedRequests\HardLinkRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\ExtendedRequests\PosixRenameRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\ExtendedRequests\StatVfsRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpBlockRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpCloseRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpFSetStatRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpFStatRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpInitRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpLinkRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpLStatRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpMkDirRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpOpenDirRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpOpenRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpReadDirRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpReadLinkRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpReadRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpRealPathRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpRemoveRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpRenameRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpRmDirRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpSetStatRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpStatRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpSymLinkRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpUnblockRequestTest.cs" />
<Compile Include="Classes\Sftp\Requests\SftpWriteRequestTest.cs" />
<Compile Include="Classes\Sftp\Responses\ExtendedReplies\StatVfsReplyInfoTest.cs" />
<Compile Include="Classes\Sftp\Responses\SftpAttrsResponseTest.cs" />
<Compile Include="Classes\Sftp\Responses\SftpDataResponseTest.cs" />
<Compile Include="Classes\Sftp\Responses\SftpExtendedReplyResponseTest.cs" />
<Compile Include="Classes\Sftp\Responses\SftpHandleResponseTest.cs" />
<Compile Include="Classes\Sftp\Responses\SftpNameResponseTest.cs" />
<Compile Include="Classes\Sftp\Responses\SftpStatusResponseTest.cs" />
<Compile Include="Classes\Sftp\Responses\SftpVersionResponseTest.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Dispose_Disposed.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Finalize_SessionOpen.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Flush_ReadMode_DataInBuffer_NotReadFromBuffer.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Flush_ReadMode_DataInBuffer_ReadFromBuffer.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Flush_ReadMode_NoDataInBuffer.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Flush_SessionNotOpen.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Flush_WriteMode_DataInBuffer.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Flush_WriteMode_NoDataInBuffer.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_ReadByte_ReadMode_NoDataInWriteBufferAndNoDataInReadBuffer_LessDataThanReadBufferSizeAvailable.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Read_ReadMode_NoDataInReaderBufferAndReadLessBytesFromServerThanCountAndLessThanBufferSize.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Read_ReadMode_NoDataInReaderBufferAndReadLessBytesFromServerThanCountAndEqualToBufferSize.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Read_ReadMode_NoDataInReaderBufferAndReadMoreBytesFromServerThanCount.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Seek_PositionedAtBeginningOfStream_OriginBeginAndOffsetNegative.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Seek_PositionedAtBeginningOfStream_OriginBeginAndOffsetPositive.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Seek_PositionedAtBeginningOfStream_OriginBeginAndOffsetZero.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Seek_PositionedAtMiddleOfStream_OriginBeginAndOffsetZero_NoBuffering.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Seek_PositionedAtMiddleOfStream_OriginBeginAndOffsetZero_ReadBuffer.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_Closed.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_DataInReadBuffer_NewLengthGreatherThanPosition.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_DataInReadBuffer_NewLengthLessThanPosition.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_DataInWriteBuffer_NewLengthGreatherThanPosition.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_DataInWriteBuffer_NewLengthLessThanPosition.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_Disposed.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_SessionNotOpen.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_SessionOpen_FIleAccessRead.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_SessionOpen_FIleAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_SetLength_SessionOpen_FIleAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Write_SessionOpen_CountGreatherThanTwoTimesTheWriteBufferSize.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_ReadByte_ReadMode_NoDataInWriteBufferAndNoDataInReadBuffer_Eof.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessReadWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileStreamTest_Ctor_FileModeAppend_FileAccessWrite.cs" />
<Compile Include="Classes\Sftp\SftpFileTest.cs" />
<Compile Include="Classes\Sftp\SftpHandleResponseBuilder.cs" />
<Compile Include="Classes\Sftp\SftpInitRequestBuilder.cs" />
<Compile Include="Classes\Sftp\SftpNameResponseBuilder.cs" />
<Compile Include="Classes\Sftp\SftpOpenRequestBuilder.cs" />
<Compile Include="Classes\Sftp\SftpReadRequestBuilder.cs" />
<Compile Include="Classes\Sftp\SftpRealPathRequestBuilder.cs" />
<Compile Include="Classes\Sftp\SftpSessionTest_Connected_RequestRead.cs" />
<Compile Include="Classes\Sftp\SftpSessionTest_Connected_RequestStatVfs.cs" />
<Compile Include="Classes\Sftp\SftpSessionTest_DataReceived_MultipleSftpMessagesInSingleSshDataMessage.cs" />
<Compile Include="Classes\Sftp\SftpSessionTest_DataReceived_MultipleSftpMessagesSplitOverMultipleSshDataMessages.cs" />
<Compile Include="Classes\Sftp\SftpSessionTest_DataReceived_SingleSftpMessageInSshDataMessage.cs" />
<Compile Include="Classes\Sftp\SftpStatVfsRequestBuilder.cs" />
<Compile Include="Classes\Sftp\SftpStatVfsResponseBuilder.cs" />
<Compile Include="Classes\Sftp\SftpVersionResponseBuilder.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferEmptyAndWriteLessBytesThanBufferSize.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferEmptyAndWriteMoreBytesThanBufferSize.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferEmptyAndWriteNumberOfBytesEqualToBufferSize.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferEmptyAndWriteZeroBytes.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferFullAndWriteLessBytesThanBufferSize.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferFullAndWriteZeroBytes.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferNotEmptyAndWriteLessBytesThanBufferCanContain.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferNotEmptyAndWriteMoreBytesThanBufferCanContain.cs" />
<Compile Include="Classes\ShellStreamTest_Write_WriteBufferNotEmptyAndWriteZeroBytes.cs" />
<Compile Include="Classes\ShellTestTest.cs" />
<Compile Include="Classes\ShellStreamTest.cs" />
<Compile Include="Classes\SshClientTest.cs" />
<Compile Include="Classes\SshClientTest_CreateShellStream_TerminalNameAndColumnsAndRowsAndWidthAndHeightAndBufferSizeAndTerminalModes_Connected.cs" />
<Compile Include="Classes\SshClientTest_CreateShellStream_TerminalNameAndColumnsAndRowsAndWidthAndHeightAndBufferSize_Connected.cs" />
<Compile Include="Classes\SshClientTest_Disconnect_ForwardedPortStarted.cs" />
<Compile Include="Classes\SshClientTest_Dispose_Connected.cs" />
<Compile Include="Classes\SshClientTest_Dispose_Disconnected.cs" />
<Compile Include="Classes\SshClientTest_Dispose_Disposed.cs" />
<Compile Include="Classes\SshClientTest_Dispose_ForwardedPortStarted.cs" />
<Compile Include="Classes\SshCommandTest.cs" />
<Compile Include="Classes\ForwardedPortLocalTest.NET40.cs" />
<Compile Include="Classes\SshCommandTest.NET40.cs" />
<Compile Include="Classes\ScpClientTest.NET40.cs" />
<Compile Include="Classes\SshCommandTest_BeginExecute_EndExecuteInvokedOnAsyncResultFromPreviousInvocation.cs" />
<Compile Include="Classes\SshCommandTest_BeginExecute_EndExecuteNotInvokedOnAsyncResultFromPreviousInvocation.cs" />
<Compile Include="Classes\SshCommandTest_Dispose.cs" />
<Compile Include="Classes\SshCommandTest_EndExecute.cs" />
<Compile Include="Classes\SshCommandTest_EndExecute_AsyncResultFromOtherInstance.cs" />
<Compile Include="Classes\SshCommandTest_EndExecute_AsyncResultIsNull.cs" />
<Compile Include="Classes\SshCommandTest_EndExecute_ChannelOpen.cs" />
<Compile Include="Classes\SubsystemSessionStub.cs" />
<Compile Include="Classes\SubsystemSession_Connect_Connected.cs" />
<Compile Include="Classes\SubsystemSession_Connect_Disconnected.cs" />
<Compile Include="Classes\SubsystemSession_Connect_Disposed.cs" />
<Compile Include="Classes\SubsystemSession_Connect_NeverConnected.cs" />
<Compile Include="Classes\SubsystemSession_Connect_SendSubsystemRequestFails.cs" />
<Compile Include="Classes\SubsystemSession_Disconnect_Connected.cs" />
<Compile Include="Classes\SubsystemSession_Disconnect_Disposed.cs" />
<Compile Include="Classes\SubsystemSession_Disconnect_NeverConnected.cs" />
<Compile Include="Classes\SubsystemSession_Dispose_Connected.cs" />
<Compile Include="Classes\SubsystemSession_Dispose_Disconnected.cs" />
<Compile Include="Classes\SubsystemSession_Dispose_Disposed.cs" />
<Compile Include="Classes\SubsystemSession_Dispose_NeverConnected.cs" />
<Compile Include="Classes\SubsystemSession_OnChannelDataReceived_Connected.cs" />
<Compile Include="Classes\SubsystemSession_OnChannelDataReceived_Disposed.cs" />
<Compile Include="Classes\SubsystemSession_OnChannelDataReceived_OnDataReceived_Exception.cs" />
<Compile Include="Classes\SubsystemSession_OnChannelException_Connected.cs" />
<Compile Include="Classes\SubsystemSession_OnChannelException_Disposed.cs" />
<Compile Include="Classes\SubsystemSession_OnSessionDisconnected_Connected.cs" />
<Compile Include="Classes\SubsystemSession_OnSessionDisconnected_Disposed.cs" />
<Compile Include="Classes\SubsystemSession_OnSessionErrorOccurred_Connected.cs" />
<Compile Include="Classes\SubsystemSession_OnSessionErrorOccurred_Disposed.cs" />
<Compile Include="Classes\SubsystemSession_SendData_Connected.cs" />
<Compile Include="Classes\SubsystemSession_SendData_Disconnected.cs" />
<Compile Include="Classes\SubsystemSession_SendData_Disposed.cs" />
<Compile Include="Classes\SubsystemSession_SendData_NeverConnected.cs" />
<Compile Include="Common\ArrayBuilder.cs" />
<Compile Include="Common\AsyncSocketListener.cs" />
<Compile Include="Common\DictionaryAssert.cs" />
<Compile Include="Common\Extensions.cs" />
<Compile Include="Common\HttpProxyStub.cs" />
<Compile Include="Common\HttpRequest.cs" />
<Compile Include="Classes\Common\PipeStream_Close_BlockingRead.cs" />
<Compile Include="Classes\Common\PipeStream_Close_BlockingWrite.cs" />
<Compile Include="Classes\Common\PipeStream_Flush_BytesRemainingAfterRead.cs" />
<Compile Include="Classes\Common\PipeStream_Flush_NoBytesRemainingAfterRead.cs" />
<Compile Include="Common\SftpFileAttributesBuilder.cs" />
<Compile Include="Common\TestBase.cs" />
<Compile Include="Classes\Compression\CompressorTest.cs" />
<Compile Include="Classes\Common\DerDataTest.cs" />
<Compile Include="Classes\Common\ExceptionEventArgsTest.cs" />
<Compile Include="Classes\Common\HostKeyEventArgsTest.cs" />
<Compile Include="Classes\Common\NetConfServerExceptionTest.cs" />
<Compile Include="Classes\Common\ObjectIdentifierTest.cs" />
<Compile Include="Classes\Messages\Transport\DebugMessageTest.cs" />
<Compile Include="Classes\Messages\Transport\DisconnectMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\EndOfWriteRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Authentication\FailureMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\GlobalRequestMessageTest.cs" />
<Compile Include="Classes\Messages\Transport\IgnoreMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\ChannelRequest\KeepAliveRequestInfoTest.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeDhGroupExchangeGroupTest.cs" />
<Compile Include="Classes\Messages\Transport\KeyExchangeDhReplyMessageTest.cs" />
<Compile Include="Classes\Messages\MessageAttributeTest.cs" />
<Compile Include="Classes\Messages\MessageTest.cs" />
<Compile Include="Classes\Messages\Transport\NewKeysMessageTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\Modes\CtrCipherModeTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\Modes\OfbCipherModeTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\Paddings\PKCS5PaddingTest.cs" />
<Compile Include="Classes\Security\Cryptography\Ciphers\Paddings\PKCS7PaddingTest.cs" />
<Compile Include="Classes\Security\Cryptography\DigitalSignatureTest.cs" />
<Compile Include="Classes\Security\HostAlgorithmTest.cs" />
<Compile Include="Classes\Security\KeyExchangeDiffieHellmanGroup1Sha1Test.cs" />
<Compile Include="Classes\Security\KeyExchangeDiffieHellmanGroupExchangeSha256Test.cs" />
<Compile Include="Classes\Security\KeyExchangeDiffieHellmanGroupSha1Test.cs" />
<Compile Include="Classes\Security\KeyExchangeDiffieHellmanTest.cs" />
<Compile Include="Classes\Security\KeyExchangeTest.cs" />
<Compile Include="Classes\Security\KeyTest.cs" />
<Compile Include="Classes\ForwardedPortLocalTest_Dispose_PortStarted_ChannelBound.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Renci.SshNet\Properties\CommonAssemblyInfo.cs">
<Link>Properties\CommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Classes\Common\ProxyExceptionTest.cs" />
<Compile Include="Classes\Common\ScpDownloadEventArgsTest.cs" />
<Compile Include="Classes\Common\ScpExceptionTest.cs" />
<Compile Include="Classes\Common\ScpUploadEventArgsTest.cs" />
<Compile Include="Classes\Common\SemaphoreLightTest.cs" />
<Compile Include="Classes\Common\SftpPathNotFoundExceptionTest.cs" />
<Compile Include="Classes\Common\SftpPermissionDeniedExceptionTest.cs" />
<Compile Include="Classes\Common\ShellDataEventArgsTest.cs" />
<Compile Include="Classes\Common\SshAuthenticationExceptionTest.cs" />
<Compile Include="Classes\Common\SshConnectionExceptionTest.cs" />
<Compile Include="Classes\Common\SshDataTest.cs" />
<Compile Include="Classes\Common\SshExceptionTest.cs" />
<Compile Include="Classes\Common\SshOperationTimeoutExceptionTest.cs" />
<Compile Include="Classes\Common\SshPassPhraseNullOrEmptyExceptionTest.cs" />
<Compile Include="Classes\Compression\ZlibOpenSshTest.cs" />
<Compile Include="Classes\Compression\ZlibStreamTest.cs" />
<Compile Include="Classes\Messages\Connection\RequestFailureMessageTest.cs" />
<Compile Include="Classes\Messages\Connection\RequestInfoTest.cs" />
<Compile Include="Classes\Messages\Authentication\RequestMessagePublicKeyTest.cs" />
<Compile Include="Classes\Messages\Connection\RequestSuccessMessageTest.cs" />
<Compile Include="Classes\Messages\Transport\ServiceAcceptMessageTest.cs" />
<Compile Include="Classes\Messages\Transport\ServiceRequestMessageTest.cs" />
<Compile Include="Classes\Messages\Authentication\SuccessMessageTest.cs" />
<Compile Include="Classes\Messages\Transport\UnimplementedMessageTest.cs" />
<Compile Include="Classes\Security\Cryptography\SymmetricCipherTest.cs" />
<Compile Include="Classes\Sftp\SftpDownloadAsyncResultTest.cs" />
<Compile Include="Classes\Sftp\SftpFileAttributesTest.cs" />
<Compile Include="Classes\Sftp\SftpFileSystemInformationTest.cs" />
<Compile Include="Classes\Sftp\SftpListDirectoryAsyncResultTest.cs" />
<Compile Include="Classes\Sftp\SftpSynchronizeDirectoriesAsyncResultTest.cs" />
<Compile Include="Classes\Sftp\SftpUploadAsyncResultTest.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Aes.256.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Des.Ede3.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Aes.192.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Aes.128.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Des.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.txt" />
</ItemGroup>
<ItemGroup>
<Compile Include="Classes\SessionTest.HttpProxy.cs" />
</ItemGroup>
<ItemGroup>
<None Include="..\Renci.SshNet.snk">
<Link>Renci.SshNet.snk</Link>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Data\Key.SSH2.RSA.Encrypted.Des.CBC.12345.txt" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Data\Key.SSH2.RSA.txt" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Data\Key.SSH2.DSA.Encrypted.Des.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.SSH2.DSA.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Renci.SshNet\Renci.SshNet.csproj">
<Project>{2f5f8c90-0bd1-424f-997c-7bc6280919d1}</Project>
<Name>Renci.SshNet</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Data\Key.ECDSA.txt" />
<EmbeddedResource Include="Data\Key.ECDSA384.txt" />
<EmbeddedResource Include="Data\Key.ECDSA521.txt" />
<EmbeddedResource Include="Data\Key.ECDSA.Encrypted.txt" />
<EmbeddedResource Include="Data\Key.ECDSA.txt" />
<EmbeddedResource Include="Data\Key.ECDSA384.Encrypted.txt" />
<EmbeddedResource Include="Data\Key.ECDSA384.txt" />
<EmbeddedResource Include="Data\Key.ECDSA521.Encrypted.txt" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Data\Key.ECDSA521.txt" />
<EmbeddedResource Include="Data\Key.OPENSSH.ED25519.Encrypted.txt" />
<EmbeddedResource Include="Data\Key.OPENSSH.ED25519.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Aes.128.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Aes.192.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Aes.256.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Des.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Des.Ede3.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.txt" />
<EmbeddedResource Include="Data\Key.RSA.txt" />
<EmbeddedResource Include="Data\Key.SSH2.DSA.Encrypted.Des.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.SSH2.DSA.txt" />
<EmbeddedResource Include="Data\Key.SSH2.RSA.Encrypted.Des.CBC.12345.txt" />
<EmbeddedResource Include="Data\Key.SSH2.RSA.txt" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
<ItemGroup>
<None Include="..\Renci.SshNet.snk" Link="Renci.SshNet.snk" />
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '15.0' ">
<!-- Look for Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll in VS 2017 Enterprise -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
<!-- Fall back to VS 2017 Professional -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
<!-- Fall back to VS 2017 Community -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Community\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
</PropertyGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '16.0' ">
<!-- Look for Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll in VS 2019 Enterprise -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
<!-- Fall back to VS 2019 Professional -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Professional\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
<!-- Fall back to VS 2019 Community -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Community\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
<!-- Fall back to VS 2019 Preview -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Preview\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net35'">
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
<HintPath>$(MSTestV1UnitTestFrameworkAssembly)</HintPath>
</Reference>
<PackageReference Include="Moq" Version="4.2.1409.1722" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net40'">
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
<HintPath>$(MSTestV1UnitTestFrameworkAssembly)</HintPath>
</Reference>
<PackageReference Include="Moq" Version="4.2.1409.1722" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.1'">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
<PackageReference Include="MSTest.TestFramework">
<Version>2.1.0</Version>
</PackageReference>
<PackageReference Include="Moq" Version="4.13.1" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.2'">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
<PackageReference Include="MSTest.TestFramework">
<Version>2.1.0</Version>
</PackageReference>
<PackageReference Include="Moq" Version="4.13.1" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.0'">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
<PackageReference Include="MSTest.TestFramework">
<Version>2.1.0</Version>
</PackageReference>
<PackageReference Include="Moq" Version="4.13.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Renci.SshNet\Renci.SshNet.csproj" />
</ItemGroup>
</Project>
-4
View File
@@ -1,4 +0,0 @@
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA8ZsD8jgH7ySXnd4dprEFFkJ+zs1ne81E8febjR8hekiKrc+D9GjeEykchy0PsrsBrf2F8J3GtLNISVerkl+EnVh1E0pi9Vllc1vcpQHvBeNPG/jl9Dnum/DcaaMKLot+ARXjBuMX/xJVfnlgkvfpBvoq4QzQ6E27rOMbcPlvrN7KeYbaorsTpDMUraHX5u99P1evvw7sOuNl3lc9YpIgmjHT6dWUGTqBx9T2SEKXBRVk2NNbd2UctQkr5BJn1gGehA+1KYS30FMiCSN8F8ZOlpYj1+K6xzs0srq1z30LailIyy7QmYp739BJlOF3cVywdcFXGre35H2cJylcNV2e+Q== rsa_key_without_pass
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuD5SKSM3RAO/h8z9x1RB9bhLbBkophrYVHYG8MdNwQc/iXb4IZ7PlKR2ZQovIYzHdMI5zGEuOsxJnLjxoV7NSUHlHEoGbRYX72rR3S3ZORUArLTJ9TwGZhR4TZRztJto7l4M5LGDUy4YMNN9kpcyT/aqv8v3ZcTB0UthZDXUHrrmrlktPAC+JagUjhESbtq+FAuiSUWd9/SXnAmLya7LkWANw2ScMpeSyXmEvLD+X0eapNtuwXltjRW4PoKS5fWMhiXnT61NXmgXDccrUHjWrOa1oeNjmhOuIGaDpoRtkBH8lCFQdRePgvcBIRnU9D7sjuBjZUAPqin+fDll2ISy2w== rsa_key_with_pass (tester)
ssh-dss AAAAB3NzaC1kc3MAAACBAN1CuvAa+SfAP6lv0am/+8PGPzKoVSDRxS4L+2SObe76VCPzpHB8DxEk5X44/ga2+z3M5KzGK6CKegH+4SJP7qNse/K8l4mnZ+wNYvH+1VFfGmLw3B5t9vjnlHTBVVl2qcUqwBkutABPnz0RS0uDJUAVBtQ/kXPqnHwfwAbSqXJtAAAAFQC5+1DsZ2xUe3w32ZKtj3O2QlXoKQAAAIEA1Ep/297O7PVoZSdQZYgsc7T1KJscrbnl+Su7j//O8Jt1rBZJk6hT68yemUtSE1pUyhLJgT9Ng5m+9sb1S0++vzBkZ00+Km8hcgHGWmv4UfSadLHSqVpHLc8SgNECbDqaxELNVhXe9nxlMRR236mG6u76mfRb0S6DMIweKRVWEkwAAACASHB5nNlWhpqvungn+otYyGKoVoATkRdRfSiUo3fb0mJLTmxrEhEH4UOFA/UFdQ0TYXXW0wRX/amynT4iTEXAx0FjxUNK5ryxloeoXiXEH4FK7D8RtJO11UsaRrN+nqWiSTVAehl6tzoMCPargGcWeFlAZZnPGN76OD9J1GiKZj8= dsa_key_without_pass
ssh-dss AAAAB3NzaC1kc3MAAACBAJU0pDZQHna2HaaGHsL1D0pZlnh/tM7EYAcGQcHqNRUVPLXbcy94ZdF0R9V1qCA9u7at/EEqdtfseXLbjbxLxccJM6sjCFn7GKNvc6N7w7PpAeUbZBdHdszOkNolyqGs+/45Oj0tGHLTLk2rRyOTeBagpJS1PlZQCnVbT8o/gjtvAAAAFQDUe90v8pdAZhtO84F19cRUMrWoqQAAAIBDZwBGOxMRy7nKc0f6aWNh0JX5NnTCuEiXmD6BmBV/2k9J0VJYgiTZw4mzmF4VzrV7aI+XCQz52N8od7cp76O1DXweO0cIqLkT2xLGuoBtUSpHiSqRnHUsL9BDI8s3bQ5fSCb0IwF6d90tArDX/d9mzYqx+Vvp+4ajSiSiyzaGUQAAAIB3vFz1T9jGAZ3hBPkFQ9zl0gniF2EQ/w1UlnHb7ABUyBigBxtnTN0+7yfNwFVfQS/rKxhT6muzYgQB3e1masvv0ky/vstnh5n7EZmLDLEWwIfRefbPmyfLCKK+23QmMZgPg/SGuLmwagw711ReiLyBqn5YiP8quXcDdnReJCJPig== dsa_key_with_pass (tester)
-4
View File
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Moq" version="4.2.1409.1722" targetFramework="net40" />
</packages>
+5 -40
View File
@@ -19,13 +19,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sandcastle", "sandcastle",
..\build\sandcastle\SSH.NET.shfbproj = ..\build\sandcastle\SSH.NET.shfbproj
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet", "Renci.SshNet\Renci.SshNet.csproj", "{2F5F8C90-0BD1-424F-997C-7BC6280919D1}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Renci.SshNet", "Renci.SshNet\Renci.SshNet.csproj", "{2F5F8C90-0BD1-424F-997C-7BC6280919D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.Tests", "Renci.SshNet.Tests\Renci.SshNet.Tests.csproj", "{C45379B9-17B1-4E89-BC2E-6D41726413E8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.NET35", "Renci.SshNet.NET35\Renci.SshNet.NET35.csproj", "{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Renci.SshNet.NETCore", "Renci.SshNet.NETCore\Renci.SshNet.NETCore.csproj", "{8E8229EB-6780-4A8A-B470-E2023FA55AB5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Renci.SshNet.Tests", "Renci.SshNet.Tests\Renci.SshNet.Tests.csproj", "{C45379B9-17B1-4E89-BC2E-6D41726413E8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -69,40 +65,6 @@ Global
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|x64.ActiveCfg = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|x86.ActiveCfg = Release|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Debug|ARM.ActiveCfg = Debug|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Debug|x64.ActiveCfg = Debug|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Debug|x86.ActiveCfg = Debug|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Release|Any CPU.Build.0 = Release|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Release|ARM.ActiveCfg = Release|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Release|x64.ActiveCfg = Release|Any CPU
{DD1C552F-7F48-4269-ABB3-2E4C89B7E43A}.Release|x86.ActiveCfg = Release|Any CPU
{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
@@ -111,6 +73,9 @@ Global
{94EE3919-19FA-4D9B-8DA9-249050B15232} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C3D130B3-A070-4B12-A10F-E3E44D6ACEE2}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = Renci.SshNet1.vsmdi
EndGlobalSection
+82
View File
@@ -0,0 +1,82 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29521.150
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}"
ProjectSection(SolutionItems) = preProject
..\build\build.cmd = ..\build\build.cmd
..\build\build.proj = ..\build\build.proj
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuget", "nuget", "{94EE3919-19FA-4D9B-8DA9-249050B15232}"
ProjectSection(SolutionItems) = preProject
..\build\nuget\SSH.NET.nuspec = ..\build\nuget\SSH.NET.nuspec
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sandcastle", "sandcastle", "{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1}"
ProjectSection(SolutionItems) = preProject
..\build\sandcastle\SSH.NET.shfbproj = ..\build\sandcastle\SSH.NET.shfbproj
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Renci.SshNet", "Renci.SshNet\Renci.SshNet.csproj", "{2F5F8C90-0BD1-424F-997C-7BC6280919D1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Renci.SshNet.Tests", "Renci.SshNet.Tests\Renci.SshNet.Tests.csproj", "{C45379B9-17B1-4E89-BC2E-6D41726413E8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|Mixed Platforms = Release|Mixed Platforms
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|ARM.ActiveCfg = Debug|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|x64.ActiveCfg = Debug|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|Any CPU.Build.0 = Release|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|ARM.ActiveCfg = Release|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|x64.ActiveCfg = Release|Any CPU
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|x86.ActiveCfg = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|ARM.ActiveCfg = Debug|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|x64.ActiveCfg = Debug|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|x86.ActiveCfg = Debug|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Any CPU.Build.0 = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|ARM.ActiveCfg = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|x64.ActiveCfg = Release|Any CPU
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{94EE3919-19FA-4D9B-8DA9-249050B15232} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BAD6019D-4AF7-4E15-99A0-8036E16FC0E5}
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = Renci.SshNet1.vsmdi
EndGlobalSection
EndGlobal
+2 -2
View File
@@ -327,7 +327,7 @@ namespace Renci.SshNet
}
}
#region IDisposable Members
#region IDisposable Members
private bool _isDisposed;
@@ -386,7 +386,7 @@ namespace Renci.SshNet
Dispose(false);
}
#endregion
#endregion
/// <summary>
/// Stops the keep-alive timer, and waits until all timer callbacks have been
+30 -1
View File
@@ -262,7 +262,7 @@ namespace Renci.SshNet.Common
}
/// <summary>
/// Pads with leading zeros if needd
/// Pads with leading zeros if needed.
/// </summary>
/// <param name="data">The data.</param>
/// <param name="length">The length to pad to.</param>
@@ -335,5 +335,34 @@ namespace Renci.SshNet.Common
handle.Close();
}
#endif // !FEATURE_WAITHANDLE_DISPOSE
#if !FEATURE_HASHALGORITHM_DISPOSE
/// <summary>
/// Disposes the specified algorithm.
/// </summary>
/// <param name="algorithm">The algorithm.</param>
[DebuggerNonUserCode]
internal static void Dispose(this System.Security.Cryptography.HashAlgorithm algorithm)
{
if (algorithm == null)
throw new NullReferenceException();
algorithm.Clear();
}
#endif // FEATURE_HASHALGORITHM_DISPOSE
#if !FEATURE_STRINGBUILDER_CLEAR
/// <summary>
/// Clears the contents of the string builder.
/// </summary>
/// <param name="value">
/// The <see cref="StringBuilder"/> to clear.
/// </param>
public static void Clear(this StringBuilder value)
{
value.Length = 0;
value.Capacity = 16;
}
#endif // !FEATURE_STRINGBUILDER_CLEAR
}
}
+1 -1
View File
@@ -2,7 +2,7 @@
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("SSH.NET .NET 4.0")]
[assembly: AssemblyTitle("SSH.NET")]
[assembly: Guid("ad816c5e-6f13-4589-9f3e-59523f8b77a4")]
[assembly: InternalsVisibleTo("Renci.SshNet.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f9194e1eb66b7e2575aaee115ee1d27bc100920e7150e43992d6f668f9737de8b9c7ae892b62b8a36dd1d57929ff1541665d101dc476d6e02390846efae7e5186eec409710fdb596e3f83740afef0d4443055937649bc5a773175b61c57615dac0f0fd10f52b52fedf76c17474cc567b3f7a79de95dde842509fb39aaf69c6c2")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
+41 -619
View File
@@ -1,626 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{2F5F8C90-0BD1-424F-997C-7BC6280919D1}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Renci.SshNet</RootNamespace>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<AssemblyName>Renci.SshNet</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_SETSOCKETOPTION;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;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;FEATURE_ECDSA</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\Renci.SshNet.xml</DocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<AssemblyOriginatorKeyFile>../Renci.SshNet.snk</AssemblyOriginatorKeyFile>
<LangVersion>5</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_SETSOCKETOPTION;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;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;FEATURE_ECDSA</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\Renci.SshNet.xml</DocumentationFile>
<NoWarn>
</NoWarn>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<LangVersion>5</LangVersion>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
<TargetFrameworks>net35;net40;netstandard1.3;netstandard2.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>..\Renci.SshNet.snk</AssemblyOriginatorKeyFile>
<!--
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '16.0' ">
<TargetFrameworks>net35;net40;netstandard1.3;netstandard2.0;netstandard2.1</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<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" />
<Compile Include="AuthenticationMethod.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="AuthenticationResult.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="BaseClient.cs" />
<Compile Include="Channels\IChannel.cs" />
<Compile Include="Channels\IChannelDirectTcpip.cs" />
<Compile Include="Channels\IChannelForwardedTcpip.cs" />
<Compile Include="Channels\IChannelSession.cs" />
<Compile Include="CommandAsyncResult.cs" />
<Compile Include="Channels\Channel.cs" />
<Compile Include="Channels\ChannelDirectTcpip.cs" />
<Compile Include="Channels\ChannelForwardedTcpip.cs" />
<Compile Include="Channels\ChannelSession.cs" />
<Compile Include="Channels\ChannelTypes.cs" />
<Compile Include="Channels\ClientChannel.cs" />
<Compile Include="Channels\ServerChannel.cs" />
<Compile Include="CipherInfo.cs" />
<Compile Include="Common\Array.cs" />
<Compile Include="Common\ASCIIEncoding.cs" />
<Compile Include="Common\AsyncResult.cs" />
<Compile Include="Common\AuthenticationBannerEventArgs.cs" />
<Compile Include="Common\AuthenticationEventArgs.cs" />
<Compile Include="Common\AuthenticationPasswordChangeEventArgs.cs" />
<Compile Include="Common\AuthenticationPrompt.cs" />
<Compile Include="Common\AuthenticationPromptEventArgs.cs" />
<Compile Include="ClientAuthentication.cs" />
<Compile Include="Common\BigInteger.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\ChannelDataEventArgs.cs" />
<Compile Include="Common\ChannelEventArgs.cs" />
<Compile Include="Common\ChannelExtendedDataEventArgs.cs" />
<Compile Include="Common\ChannelOpenConfirmedEventArgs.cs" />
<Compile Include="Common\ChannelOpenFailedEventArgs.cs" />
<Compile Include="Common\ChannelRequestEventArgs.cs" />
<Compile Include="Common\CountdownEvent.cs" />
<Compile Include="Common\Pack.cs" />
<Compile Include="Common\PosixPath.cs" />
<Compile Include="Common\ProxyException.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\HostKeyEventArgs.cs" />
<Compile Include="Common\DerData.cs" />
<Compile Include="Common\ExceptionEventArgs.cs" />
<Compile Include="Common\Extensions.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\NetConfServerException.cs" />
<Compile Include="Common\ObjectIdentifier.cs" />
<Compile Include="Common\PipeStream.cs" />
<Compile Include="Common\PortForwardEventArgs.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\ScpDownloadEventArgs.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\ScpException.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\ScpUploadEventArgs.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\SemaphoreLight.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\SftpPathNotFoundException.cs" />
<Compile Include="Common\SftpPermissionDeniedException.cs" />
<Compile Include="Common\ShellDataEventArgs.cs" />
<Compile Include="Common\SshAuthenticationException.cs" />
<Compile Include="Common\SshConnectionException.cs" />
<Compile Include="Common\SshData.cs" />
<Compile Include="Common\SshException.cs" />
<Compile Include="Common\SshOperationTimeoutException.cs" />
<Compile Include="Common\SshPassPhraseNullOrEmptyException.cs" />
<Compile Include="Common\TerminalModes.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Compression\CompressionMode.cs" />
<Compile Include="Compression\Compressor.cs" />
<Compile Include="Compression\Zlib.cs" />
<Compile Include="Compression\ZlibOpenSsh.cs" />
<Compile Include="Compression\ZlibStream.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ConnectionInfo.cs" />
<Compile Include="ForwardedPortStatus.cs" />
<Compile Include="HashInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="IAuthenticationMethod.cs" />
<Compile Include="IClientAuthentication.cs" />
<Compile Include="IConnectionInfo.cs" />
<Compile Include="IForwardedPort.cs" />
<Compile Include="IRemotePathTransformation.cs" />
<Compile Include="IServiceFactory.cs" />
<Compile Include="IServiceFactory.NET.cs" />
<Compile Include="ISession.cs" />
<Compile Include="ISubsystemSession.cs" />
<Compile Include="Messages\Connection\CancelTcpIpForwardGlobalRequestMessage.cs" />
<Compile Include="Messages\Connection\TcpIpForwardGlobalRequestMessage.cs" />
<Compile Include="Messages\Transport\KeyExchangeEcdhInitMessage.cs" />
<Compile Include="Messages\Transport\KeyExchangeEcdhReplyMessage.cs" />
<Compile Include="Netconf\INetConfSession.cs" />
<Compile Include="RemotePathDoubleQuoteTransformation.cs" />
<Compile Include="RemotePathNoneTransformation.cs" />
<Compile Include="RemotePathShellQuoteTransformation.cs" />
<Compile Include="RemotePathTransformation.cs" />
<Compile Include="Security\BouncyCastle\asn1\sec\SECNamedCurves.cs" />
<Compile Include="Security\BouncyCastle\asn1\x9\X9Curve.cs" />
<Compile Include="Security\BouncyCastle\asn1\x9\X9ECParameters.cs" />
<Compile Include="Security\BouncyCastle\asn1\x9\X9ECParametersHolder.cs" />
<Compile Include="Security\BouncyCastle\asn1\x9\X9ECPoint.cs" />
<Compile Include="Security\BouncyCastle\crypto\agreement\ECDHCBasicAgreement.cs" />
<Compile Include="Security\BouncyCastle\crypto\AsymmetricCipherKeyPair.cs" />
<Compile Include="Security\BouncyCastle\crypto\AsymmetricKeyParameter.cs" />
<Compile Include="Security\BouncyCastle\crypto\digests\GeneralDigest.cs" />
<Compile Include="Security\BouncyCastle\crypto\digests\Sha256Digest.cs" />
<Compile Include="Security\BouncyCastle\crypto\generators\ECKeyPairGenerator.cs" />
<Compile Include="Security\BouncyCastle\crypto\IAsymmetricCipherKeyPairGenerator.cs" />
<Compile Include="Security\BouncyCastle\crypto\IDigest.cs" />
<Compile Include="Security\BouncyCastle\crypto\KeyGenerationParameters.cs" />
<Compile Include="Security\BouncyCastle\crypto\parameters\ECDomainParameters.cs" />
<Compile Include="Security\BouncyCastle\crypto\parameters\ECKeyGenerationParameters.cs" />
<Compile Include="Security\BouncyCastle\crypto\parameters\ECKeyParameters.cs" />
<Compile Include="Security\BouncyCastle\crypto\parameters\ECPrivateKeyParameters.cs" />
<Compile Include="Security\BouncyCastle\crypto\parameters\ECPublicKeyParameters.cs" />
<Compile Include="Security\BouncyCastle\crypto\prng\CryptoApiRandomGenerator.cs" />
<Compile Include="Security\BouncyCastle\crypto\prng\DigestRandomGenerator.cs" />
<Compile Include="Security\BouncyCastle\crypto\prng\IRandomGenerator.cs" />
<Compile Include="Security\BouncyCastle\crypto\util\Pack.cs" />
<Compile Include="Security\BouncyCastle\math\BigInteger.cs" />
<Compile Include="Security\BouncyCastle\math\ec\abc\SimpleBigDecimal.cs" />
<Compile Include="Security\BouncyCastle\math\ec\abc\Tnaf.cs" />
<Compile Include="Security\BouncyCastle\math\ec\abc\ZTauElement.cs" />
<Compile Include="Security\BouncyCastle\math\ec\ECAlgorithms.cs" />
<Compile Include="Security\BouncyCastle\math\ec\ECCurve.cs" />
<Compile Include="Security\BouncyCastle\math\ec\ECFieldElement.cs" />
<Compile Include="Security\BouncyCastle\math\ec\ECLookupTable.cs" />
<Compile Include="Security\BouncyCastle\math\ec\ECPoint.cs" />
<Compile Include="Security\BouncyCastle\math\ec\ECPointMap.cs" />
<Compile Include="Security\BouncyCastle\math\ec\endo\ECEndomorphism.cs" />
<Compile Include="Security\BouncyCastle\math\ec\endo\GlvEndomorphism.cs" />
<Compile Include="Security\BouncyCastle\math\ec\LongArray.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\AbstractECMultiplier.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\ECMultiplier.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\FixedPointCombMultiplier.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\FixedPointPreCompInfo.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\FixedPointUtilities.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\GlvMultiplier.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\IPreCompCallback.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\PreCompInfo.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\ValidityPreCompInfo.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\WNafL2RMultiplier.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\WNafPreCompInfo.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\WNafUtilities.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\WTauNafMultiplier.cs" />
<Compile Include="Security\BouncyCastle\math\ec\multiplier\WTauNafPreCompInfo.cs" />
<Compile Include="Security\BouncyCastle\math\field\FiniteFields.cs" />
<Compile Include="Security\BouncyCastle\math\field\GenericPolynomialExtensionField.cs" />
<Compile Include="Security\BouncyCastle\math\field\GF2Polynomial.cs" />
<Compile Include="Security\BouncyCastle\math\field\IExtensionField.cs" />
<Compile Include="Security\BouncyCastle\math\field\IFiniteField.cs" />
<Compile Include="Security\BouncyCastle\math\field\IPolynomial.cs" />
<Compile Include="Security\BouncyCastle\math\field\IPolynomialExtensionField.cs" />
<Compile Include="Security\BouncyCastle\math\field\PrimeField.cs" />
<Compile Include="Security\BouncyCastle\math\raw\Mod.cs" />
<Compile Include="Security\BouncyCastle\math\raw\Nat.cs" />
<Compile Include="Security\BouncyCastle\security\DigestUtilities.cs" />
<Compile Include="Security\BouncyCastle\security\SecureRandom.cs" />
<Compile Include="Security\BouncyCastle\security\SecurityUtilityException.cs" />
<Compile Include="Security\BouncyCastle\util\Arrays.cs" />
<Compile Include="Security\BouncyCastle\util\BigIntegers.cs" />
<Compile Include="Security\BouncyCastle\util\encoders\Hex.cs" />
<Compile Include="Security\BouncyCastle\util\encoders\HexEncoder.cs" />
<Compile Include="Security\BouncyCastle\util\Enums.cs" />
<Compile Include="Security\BouncyCastle\util\IMemoable.cs" />
<Compile Include="Security\BouncyCastle\util\Integers.cs" />
<Compile Include="Security\BouncyCastle\util\MemoableResetException.cs" />
<Compile Include="Security\BouncyCastle\util\Times.cs" />
<Compile Include="Security\Chaos.NaCl\CryptoBytes.cs" />
<Compile Include="Security\Chaos.NaCl\Ed25519.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Array16.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Array8.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\ByteIntegerConverter.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\base.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\base2.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\d.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\d2.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_0.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_1.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_add.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_cmov.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_cswap.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_frombytes.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_invert.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_isnegative.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_isnonzero.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_mul.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_mul121666.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_neg.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_pow22523.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_sq.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_sq2.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_sub.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\fe_tobytes.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\FieldElement.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_add.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_double_scalarmult.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_frombytes.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_madd.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_msub.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p1p1_to_p2.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p1p1_to_p3.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p2_0.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p2_dbl.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p3_0.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p3_dbl.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p3_tobytes.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p3_to_cached.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_p3_to_p2.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_precomp_0.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_scalarmult_base.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_sub.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\ge_tobytes.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\GroupElement.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\keypair.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\open.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\scalarmult.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\sc_clamp.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\sc_mul_add.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\sc_reduce.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\sign.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Ed25519Ref10\sqrtm1.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\InternalAssert.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Poly1305Donna.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Salsa\Salsa20.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Salsa\SalsaCore.cs" />
<Compile Include="Security\Chaos.NaCl\Internal\Sha512Internal.cs" />
<Compile Include="Security\Chaos.NaCl\MontgomeryCurve25519.cs" />
<Compile Include="Security\Chaos.NaCl\Sha512.cs" />
<Compile Include="Security\Cryptography\ED25519DigitalSignature.cs" />
<Compile Include="Security\Cryptography\EcdsaDigitalSignature.cs" />
<Compile Include="Security\Cryptography\EcdsaKey.cs" />
<Compile Include="Security\Cryptography\ED25519Key.cs" />
<Compile Include="Security\Cryptography\Bcrypt.cs" />
<Compile Include="Security\Cryptography\HMACMD5.cs" />
<Compile Include="Security\Cryptography\HMACSHA1.cs" />
<Compile Include="Security\Cryptography\HMACSHA256.cs" />
<Compile Include="Security\Cryptography\HMACSHA384.cs" />
<Compile Include="Security\Cryptography\HMACSHA512.cs" />
<Compile Include="Security\GroupExchangeHashData.cs" />
<Compile Include="Security\IKeyExchange.cs" />
<Compile Include="Security\KeyExchangeDiffieHellmanGroupExchangeShaBase.cs" />
<Compile Include="Security\KeyExchangeEC.cs" />
<Compile Include="Security\KeyExchangeECCurve25519.cs" />
<Compile Include="Security\KeyExchangeECDH.cs" />
<Compile Include="Security\KeyExchangeECDH521.cs" />
<Compile Include="Security\KeyExchangeECDH384.cs" />
<Compile Include="Security\KeyExchangeECDH256.cs" />
<Compile Include="ServiceFactory.cs" />
<Compile Include="ServiceFactory.NET.cs" />
<Compile Include="Sftp\ISftpFileReader.cs" />
<Compile Include="Sftp\ISftpResponseFactory.cs" />
<Compile Include="Sftp\ISftpSession.cs" />
<Compile Include="Common\SshDataStream.cs" />
<Compile Include="ExpectAsyncResult.cs" />
<Compile Include="Security\KeyExchangeDiffieHellmanGroupSha1.cs" />
<Compile Include="KeyboardInteractiveAuthenticationMethod.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="KeyboardInteractiveConnectionInfo.cs" />
<Compile Include="NoneAuthenticationMethod.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="PasswordAuthenticationMethod.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ExpectAction.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ForwardedPortDynamic.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ForwardedPortDynamic.NET.cs" />
<Compile Include="ForwardedPortLocal.NET.cs" />
<Compile Include="Messages\Transport\IKeyExchangedAllowed.cs" />
<Compile Include="PasswordConnectionInfo.cs" />
<Compile Include="PrivateKeyAuthenticationMethod.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="PrivateKeyConnectionInfo.cs" />
<Compile Include="ProxyTypes.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ScpClient.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ScpClient.NET.cs" />
<Compile Include="ForwardedPort.cs" />
<Compile Include="ForwardedPortLocal.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ForwardedPortRemote.cs" />
<Compile Include="MessageEventArgs.cs" />
<Compile Include="Messages\Authentication\BannerMessage.cs" />
<Compile Include="Messages\Authentication\FailureMessage.cs" />
<Compile Include="Messages\Authentication\InformationRequestMessage.cs" />
<Compile Include="Messages\Authentication\InformationResponseMessage.cs" />
<Compile Include="Messages\Authentication\PasswordChangeRequiredMessage.cs" />
<Compile Include="Messages\Authentication\PublicKeyMessage.cs" />
<Compile Include="Messages\Authentication\RequestMessage.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Messages\Authentication\RequestMessageHost.cs" />
<Compile Include="Messages\Authentication\RequestMessageKeyboardInteractive.cs" />
<Compile Include="Messages\Authentication\RequestMessageNone.cs" />
<Compile Include="Messages\Authentication\RequestMessagePassword.cs" />
<Compile Include="Messages\Authentication\RequestMessagePublicKey.cs" />
<Compile Include="Messages\Authentication\SuccessMessage.cs" />
<Compile Include="Messages\Connection\ChannelCloseMessage.cs" />
<Compile Include="Messages\Connection\ChannelDataMessage.cs" />
<Compile Include="Messages\Connection\ChannelEofMessage.cs" />
<Compile Include="Messages\Connection\ChannelExtendedDataMessage.cs" />
<Compile Include="Messages\Connection\ChannelFailureMessage.cs" />
<Compile Include="Messages\Connection\ChannelMessage.cs" />
<Compile Include="Messages\Connection\ChannelOpenConfirmationMessage.cs" />
<Compile Include="Messages\Connection\ChannelOpenFailureMessage.cs" />
<Compile Include="Messages\Connection\ChannelOpenFailureReasons.cs" />
<Compile Include="Messages\Connection\ChannelOpen\ChannelOpenInfo.cs" />
<Compile Include="Messages\Connection\ChannelOpen\ChannelOpenMessage.cs" />
<Compile Include="Messages\Connection\ChannelOpen\DirectTcpipChannelInfo.cs" />
<Compile Include="Messages\Connection\ChannelOpen\ForwardedTcpipChannelInfo.cs" />
<Compile Include="Messages\Connection\ChannelOpen\SessionChannelOpenInfo.cs" />
<Compile Include="Messages\Connection\ChannelOpen\X11ChannelOpenInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\BreakRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\ChannelRequestMessage.cs" />
<Compile Include="Messages\Connection\ChannelRequest\EndOfWriteRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\EnvironmentVariableRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\ExecRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\ExitSignalRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\ExitStatusRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\KeepAliveRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\PseudoTerminalInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\RequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\ShellRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\SignalRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\SubsystemRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\WindowChangeRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\X11ForwardingRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelRequest\XonXoffRequestInfo.cs" />
<Compile Include="Messages\Connection\ChannelSuccessMessage.cs" />
<Compile Include="Messages\Connection\ChannelWindowAdjustMessage.cs" />
<Compile Include="Messages\Connection\GlobalRequestMessage.cs" />
<Compile Include="Messages\Connection\GlobalRequestName.cs" />
<Compile Include="Messages\Connection\RequestFailureMessage.cs" />
<Compile Include="Messages\Connection\RequestSuccessMessage.cs" />
<Compile Include="Messages\Message.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Messages\MessageAttribute.cs" />
<Compile Include="Messages\ServiceName.cs" />
<Compile Include="Messages\Transport\DebugMessage.cs" />
<Compile Include="Messages\Transport\DisconnectMessage.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Messages\Transport\DisconnectReason.cs" />
<Compile Include="Messages\Transport\IgnoreMessage.cs" />
<Compile Include="Messages\Transport\KeyExchangeDhGroupExchangeGroup.cs" />
<Compile Include="Messages\Transport\KeyExchangeDhGroupExchangeInit.cs" />
<Compile Include="Messages\Transport\KeyExchangeDhGroupExchangeReply.cs" />
<Compile Include="Messages\Transport\KeyExchangeDhGroupExchangeRequest.cs" />
<Compile Include="Messages\Transport\KeyExchangeDhInitMessage.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Messages\Transport\KeyExchangeDhReplyMessage.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Messages\Transport\KeyExchangeInitMessage.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Messages\Transport\NewKeysMessage.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Messages\Transport\ServiceAcceptMessage.cs" />
<Compile Include="Messages\Transport\ServiceRequestMessage.cs" />
<Compile Include="Messages\Transport\UnimplementedMessage.cs" />
<Compile Include="NetConfClient.cs" />
<Compile Include="Netconf\NetConfSession.cs" />
<Compile Include="PrivateKeyFile.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\CommonAssemblyInfo.cs" />
<Compile Include="Security\Algorithm.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\CertificateHostAlgorithm.cs" />
<Compile Include="Security\Cryptography\AsymmetricCipher.cs" />
<Compile Include="Security\Cryptography\BlockCipher.cs" />
<Compile Include="Security\Cryptography\Cipher.cs" />
<Compile Include="Security\Cryptography\CipherDigitalSignature.cs" />
<Compile Include="Security\Cryptography\Ciphers\AesCipher.cs" />
<Compile Include="Security\Cryptography\Ciphers\Arc4Cipher.cs" />
<Compile Include="Security\Cryptography\Ciphers\BlowfishCipher.cs" />
<Compile Include="Security\Cryptography\Ciphers\CastCipher.cs" />
<Compile Include="Security\Cryptography\Ciphers\CipherMode.cs" />
<Compile Include="Security\Cryptography\Ciphers\CipherPadding.cs" />
<Compile Include="Security\Cryptography\Ciphers\DesCipher.cs" />
<Compile Include="Security\Cryptography\Ciphers\Modes\CbcCipherMode.cs" />
<Compile Include="Security\Cryptography\Ciphers\Modes\CfbCipherMode.cs" />
<Compile Include="Security\Cryptography\Ciphers\Modes\CtrCipherMode.cs" />
<Compile Include="Security\Cryptography\Ciphers\Modes\OfbCipherMode.cs" />
<Compile Include="Security\Cryptography\Ciphers\Paddings\PKCS5Padding.cs" />
<Compile Include="Security\Cryptography\Ciphers\Paddings\PKCS7Padding.cs" />
<Compile Include="Security\Cryptography\Ciphers\RsaCipher.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\Cryptography\Ciphers\SerpentCipher.cs" />
<Compile Include="Security\Cryptography\Ciphers\TripleDesCipher.cs" />
<Compile Include="Security\Cryptography\Ciphers\TwofishCipher.cs" />
<Compile Include="Security\Cryptography\DigitalSignature.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\Cryptography\DsaDigitalSignature.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\Cryptography\DsaKey.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\Cryptography\Key.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\Cryptography\RsaDigitalSignature.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\Cryptography\RsaKey.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\Cryptography\StreamCipher.cs" />
<Compile Include="Security\Cryptography\SymmetricCipher.cs" />
<Compile Include="Security\HostAlgorithm.cs" />
<Compile Include="Security\KeyExchange.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\KeyExchangeDiffieHellman.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\KeyExchangeDiffieHellmanGroup14Sha1.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\KeyExchangeDiffieHellmanGroup1Sha1.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\KeyExchangeDiffieHellmanGroupExchangeSha1.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\KeyExchangeDiffieHellmanGroupExchangeSha256.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Security\KeyHostAlgorithm.cs" />
<Compile Include="Session.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="SftpClient.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Sftp\Flags.cs" />
<Compile Include="Sftp\Requests\ExtendedRequests\FStatVfsRequest.cs" />
<Compile Include="Sftp\Requests\ExtendedRequests\HardLinkRequest.cs" />
<Compile Include="Sftp\Requests\SftpUnblockRequest.cs" />
<Compile Include="Sftp\Requests\SftpBlockRequest.cs" />
<Compile Include="Sftp\Requests\SftpExtendedRequest.cs" />
<Compile Include="Sftp\Requests\ExtendedRequests\PosixRenameRequest.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Sftp\Requests\SftpCloseRequest.cs" />
<Compile Include="Sftp\Requests\SftpFSetStatRequest.cs" />
<Compile Include="Sftp\Requests\SftpFStatRequest.cs" />
<Compile Include="Sftp\Requests\SftpInitRequest.cs" />
<Compile Include="Sftp\Requests\SftpLinkRequest.cs" />
<Compile Include="Sftp\Requests\SftpLStatRequest.cs" />
<Compile Include="Sftp\Requests\SftpMkDirRequest.cs" />
<Compile Include="Sftp\Requests\SftpOpenDirRequest.cs" />
<Compile Include="Sftp\Requests\SftpOpenRequest.cs" />
<Compile Include="Sftp\Requests\SftpReadDirRequest.cs" />
<Compile Include="Sftp\Requests\SftpReadLinkRequest.cs" />
<Compile Include="Sftp\Requests\SftpReadRequest.cs" />
<Compile Include="Sftp\Requests\SftpRealPathRequest.cs" />
<Compile Include="Sftp\Requests\SftpRemoveRequest.cs" />
<Compile Include="Sftp\Requests\SftpRenameRequest.cs" />
<Compile Include="Sftp\Requests\SftpRequest.cs" />
<Compile Include="Sftp\Requests\SftpRmDirRequest.cs" />
<Compile Include="Sftp\Requests\SftpSetStatRequest.cs" />
<Compile Include="Sftp\Requests\SftpStatRequest.cs" />
<Compile Include="Sftp\Requests\SftpSymLinkRequest.cs" />
<Compile Include="Sftp\Requests\SftpWriteRequest.cs" />
<Compile Include="Sftp\Requests\ExtendedRequests\StatVfsRequest.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Sftp\Responses\ExtendedReplies\ExtendedReplyInfo.cs" />
<Compile Include="Sftp\Responses\ExtendedReplies\StatVfsReplyInfo.cs" />
<Compile Include="Sftp\Responses\SftpAttrsResponse.cs" />
<Compile Include="Sftp\Responses\SftpDataResponse.cs" />
<Compile Include="Sftp\Responses\SftpExtendedReplyResponse.cs" />
<Compile Include="Sftp\Responses\SftpHandleResponse.cs" />
<Compile Include="Sftp\Responses\SftpNameResponse.cs" />
<Compile Include="Sftp\Responses\SftpResponse.cs" />
<Compile Include="Sftp\Responses\SftpStatusResponse.cs" />
<Compile Include="Sftp\Responses\SftpVersionResponse.cs" />
<Compile Include="Sftp\SftpCloseAsyncResult.cs" />
<Compile Include="Sftp\SftpDownloadAsyncResult.cs" />
<Compile Include="Sftp\SftpFile.cs" />
<Compile Include="Sftp\SftpFileAttributes.cs" />
<Compile Include="Sftp\SftpFileReader.cs" />
<Compile Include="Sftp\SftpFileStream.cs" />
<Compile Include="Sftp\SftpFileSystemInformation.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Sftp\SftpListDirectoryAsyncResult.cs" />
<Compile Include="Sftp\SftpMessage.cs" />
<Compile Include="Sftp\SftpResponseFactory.cs" />
<Compile Include="Sftp\SftpMessageTypes.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Sftp\SftpOpenAsyncResult.cs" />
<Compile Include="Sftp\SftpReadAsyncResult.cs" />
<Compile Include="Sftp\SftpRealPathAsyncResult.cs" />
<Compile Include="Sftp\SftpSession.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Sftp\SFtpStatAsyncResult.cs" />
<Compile Include="Sftp\SftpSynchronizeDirectoriesAsyncResult.cs" />
<Compile Include="Sftp\SftpUploadAsyncResult.cs" />
<Compile Include="Sftp\StatusCodes.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Shell.cs" />
<Compile Include="ShellStream.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="SshClient.cs" />
<Compile Include="SshCommand.cs" />
<Compile Include="SshMessageFactory.cs" />
<Compile Include="SubsystemSession.cs" />
</ItemGroup>
<ItemGroup>
<None Include="..\Renci.SshNet.snk">
<Link>Renci.SshNet.snk</Link>
</None>
<None Include="Documentation\Renci.SshNet.content" />
</ItemGroup>
<ItemGroup>
<Content Include="Documentation\SshNet.shfbproj" />
<Content Include="Security\Chaos.NaCl\Internal\Salsa\replace regex.txt" />
<Content Include="Security\Chaos.NaCl\License.txt" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
<PackageReference Include="SshNet.Security.Cryptography" Version="[1.3.0]" />
<PackageReference Include="System.Diagnostics.TraceSource" Version="4.3.0" />
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
<PackageReference Include="System.Threading.Thread" Version="4.3.0" />
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0" />
<PackageReference Include="System.Threading.Timer" Version="4.3.0" />
<PackageReference Include="System.Xml.XmlDocument" Version="4.3.0" />
<PackageReference Include="System.Xml.XPath.XmlDocument" Version="4.3.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netstandard2.1' ">
<PackageReference Include="SshNet.Security.Cryptography" Version="[1.3.0]" />
<PackageReference Include="System.Security.Cryptography.Cng" Version="4.7.0" />
</ItemGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'net35' ">
<DefineConstants>FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_SETSOCKETOPTION;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;FEATURE_ECDSA</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'net40' ">
<DefineConstants>FEATURE_STRINGBUILDER_CLEAR;FEATURE_HASHALGORITHM_DISPOSE;FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_SETSOCKETOPTION;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;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;FEATURE_ECDSA</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
<DefineConstants>FEATURE_STRINGBUILDER_CLEAR;FEATURE_HASHALGORITHM_DISPOSE;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_SYNC;FEATURE_SOCKET_SETSOCKETOPTION;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_DNS_TAP;FEATURE_STREAM_TAP;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_TAP;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;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</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netstandard2.1' ">
<DefineConstants>FEATURE_STRINGBUILDER_CLEAR;FEATURE_HASHALGORITHM_DISPOSE;FEATURE_ENCODING_ASCII;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_RNG_CREATE;FEATURE_SOCKET_TAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_EAP;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_SETSOCKETOPTION;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_DNS_SYNC;FEATURE_DNS_APM;FEATURE_DNS_TAP;FEATURE_STREAM_APM;FEATURE_STREAM_TAP;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_TAP;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;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;FEATURE_ECDSA</DefineConstants>
</PropertyGroup>
</Project>