-
-
Notifications
You must be signed in to change notification settings - Fork 940
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
138 changed files
with
16,144 additions
and
3,505 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
[*.cs] | ||
|
||
#### SYSLIB diagnostics #### | ||
|
||
# SYSLIB1045: Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time | ||
# | ||
# TODO: Remove this when https://github.com/sshnet/SSH.NET/issues/1131 is implemented. | ||
dotnet_diagnostic.SYSLIB1045.severity = none | ||
|
||
### StyleCop Analyzers rules ### | ||
|
||
#### .NET Compiler Platform analysers rules #### | ||
|
||
# IDE0007: Use var instead of explicit type | ||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0007 | ||
dotnet_diagnostic.IDE0007.severity = suggestion | ||
|
||
# IDE0028: Use collection initializers | ||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0028 | ||
dotnet_diagnostic.IDE0028.severity = suggestion | ||
|
||
# IDE0058: Remove unnecessary expression value | ||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0058 | ||
dotnet_diagnostic.IDE0058.severity = suggestion | ||
|
||
# IDE0059: Remove unnecessary value assignment | ||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0059 | ||
dotnet_diagnostic.IDE0059.severity = suggestion | ||
|
||
# IDE0230: Use UTF-8 string literal | ||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0230 | ||
dotnet_diagnostic.IDE0230.severity = suggestion |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
TestResults/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<configuration> | ||
<system.diagnostics> | ||
<trace autoflush="true"/> | ||
<sources> | ||
<source name="SshNet.Logging" switchName="SshNetSwitch" switchType="System.Diagnostics.SourceSwitch"> | ||
<listeners> | ||
<!--<add name="SshDotNetTraceFile" />--> | ||
<!--<add name="Console"/>--> | ||
</listeners> | ||
</source> | ||
</sources> | ||
<switches> | ||
<add name="SshNetSwitch" value="Verbose"/> | ||
</switches> | ||
<sharedListeners> | ||
<add name="SshDotNetTraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="SshNetTrace.log"> | ||
<!--<filter type="System.Diagnostics.EventTypeFilter" initializeData="Warning" />--> | ||
</add> | ||
<add name="Console" type="System.Diagnostics.ConsoleTraceListener" traceOutputOptions="DateTime,Timestamp,ThreadId"/> | ||
</sharedListeners> | ||
</system.diagnostics> | ||
</configuration> |
84 changes: 84 additions & 0 deletions
84
src/Renci.SshNet.IntegrationTests/AuthenticationMethodFactory.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
namespace Renci.SshNet.IntegrationTests | ||
{ | ||
public class AuthenticationMethodFactory | ||
{ | ||
public PasswordAuthenticationMethod CreatePowerUserPasswordAuthenticationMethod() | ||
{ | ||
var user = Users.Admin; | ||
return new PasswordAuthenticationMethod(user.UserName, user.Password); | ||
} | ||
|
||
public PrivateKeyAuthenticationMethod CreateRegularUserPrivateKeyAuthenticationMethod() | ||
{ | ||
var privateKeyFile = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa"); | ||
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile); | ||
} | ||
|
||
public PrivateKeyAuthenticationMethod CreateRegularUserMultiplePrivateKeyAuthenticationMethod() | ||
{ | ||
var privateKeyFile1 = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa"); | ||
var privateKeyFile2 = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa"); | ||
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile1, privateKeyFile2); | ||
} | ||
|
||
public PrivateKeyAuthenticationMethod CreateRegularUserPrivateKeyWithPassPhraseAuthenticationMethod() | ||
{ | ||
var privateKeyFile = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa_with_pass", "tester"); | ||
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile); | ||
} | ||
|
||
public PrivateKeyAuthenticationMethod CreateRegularUserPrivateKeyWithEmptyPassPhraseAuthenticationMethod() | ||
{ | ||
var privateKeyFile = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa_with_pass", null); | ||
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile); | ||
} | ||
|
||
public PrivateKeyAuthenticationMethod CreateRegularUserPrivateKeyAuthenticationMethodWithBadKey() | ||
{ | ||
var privateKeyFile = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_noaccess.rsa"); | ||
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile); | ||
} | ||
|
||
public PasswordAuthenticationMethod CreateRegulatUserPasswordAuthenticationMethod() | ||
{ | ||
return new PasswordAuthenticationMethod(Users.Regular.UserName, Users.Regular.Password); | ||
} | ||
|
||
public PasswordAuthenticationMethod CreateRegularUserPasswordAuthenticationMethodWithBadPassword() | ||
{ | ||
return new PasswordAuthenticationMethod(Users.Regular.UserName, "xxx"); | ||
} | ||
|
||
public KeyboardInteractiveAuthenticationMethod CreateRegularUserKeyboardInteractiveAuthenticationMethod() | ||
{ | ||
var keyboardInteractive = new KeyboardInteractiveAuthenticationMethod(Users.Regular.UserName); | ||
keyboardInteractive.AuthenticationPrompt += (sender, args) => | ||
{ | ||
foreach (var authenticationPrompt in args.Prompts) | ||
{ | ||
authenticationPrompt.Response = Users.Regular.Password; | ||
} | ||
}; | ||
return keyboardInteractive; | ||
} | ||
|
||
private PrivateKeyFile GetPrivateKey(string resourceName, string passPhrase = null) | ||
{ | ||
using (var stream = GetResourceStream(resourceName)) | ||
{ | ||
return new PrivateKeyFile(stream, passPhrase); | ||
} | ||
} | ||
|
||
private Stream GetResourceStream(string resourceName) | ||
{ | ||
var type = GetType(); | ||
var resourceStream = type.Assembly.GetManifestResourceStream(resourceName); | ||
if (resourceStream == null) | ||
{ | ||
throw new ArgumentException($"Resource '{resourceName}' not found in assembly '{type.Assembly.FullName}'.", nameof(resourceName)); | ||
} | ||
return resourceStream; | ||
} | ||
} | ||
} |
Oops, something went wrong.