Fix bad certificate handling

This commit is contained in:
Cyberboss
2017-11-01 15:23:53 -04:00
parent c3075876ce
commit 6be8f428ca
3 changed files with 12 additions and 12 deletions
+9 -10
View File
@@ -102,16 +102,6 @@ namespace TGCommandLine
static void ReplaceInterface(Interface I)
{
if (!interactive)
I.SetBadCertificateHandler((message) =>
{
foreach (var J in Environment.GetCommandLineArgs())
if (J.ToLower() == "--disable-ssl-verification") //im just not even going to document this because i hate it so much
return true;
return false;
});
else
I.SetBadCertificateHandler(BadCertificateInteractive);
currentInterface = I;
ConsoleCommand.Interface = I;
InstanceRootCommand.currentInterface = I;
@@ -192,6 +182,7 @@ namespace TGCommandLine
{
var argsAsList = new List<string>(args);
for (var I = 0; I < argsAsList.Count - 1; ++I)
{
if (argsAsList[I].ToLower() == "--instance")
{
if (!CheckInstanceConnectivity(args[I + 1], true))
@@ -199,10 +190,18 @@ namespace TGCommandLine
argsAsList.RemoveRange(I, 2);
break;
}
else if (argsAsList[I].ToLower() == "--disable-ssl-verification") //im just not even going to document this because i hate it so much
{
argsAsList.RemoveAt(I);
--I;
Interface.SetBadCertificateHandler(_ => false);
}
}
return (int)RunCommandLine(argsAsList);
}
//interactive mode
Interface.SetBadCertificateHandler(BadCertificateInteractive);
Console.WriteLine("Type 'instance' to connect to a server instance");
Console.WriteLine("Type 'remote' to connect to a remote service");
+1
View File
@@ -19,6 +19,7 @@ namespace TGControlPanel
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Interface.SetBadCertificateHandler(BadCertificateHandler);
var login = new Login();
login.Show();
Application.Run();
+2 -2
View File
@@ -174,7 +174,7 @@ namespace TGServiceInterface
/// Sets the function called when a remote login fails due to the server having an invalid SSL cert
/// </summary>
/// <param name="handler">The <see cref="Func{T, TResult}"/> to be called when a remote login is attempted while the server posesses a bad certificate. Passed a <see cref="string"/> of error information about the and should return <see langword="true"/> if it the connection should be made anyway</param>
public void SetBadCertificateHandler(Func<string, bool> handler)
public static void SetBadCertificateHandler(Func<string, bool> handler)
{
ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
{
@@ -196,7 +196,7 @@ namespace TGServiceInterface
ErrorMessage = "An unknown error occurred.";
break;
}
ErrorMessage = String.Format("The certificate failed to verify for {0}:{1}. {2} {3}", HTTPSURL, HTTPSPort, ErrorMessage, cert.ToString());
ErrorMessage = String.Format("The server's certificate failed to verify! Error: {0} Cert: {1}", ErrorMessage, cert.ToString());
return handler(ErrorMessage);
};
}