lokinet/ui-win32/dlgBootstrap.cs
Rick V 14de93066a
fix TLS WebClient
add fonts (licence: https://github.com/be5invis/Iosevka/blob/master/LICENSE.md)
remove release tag (iss should have a custom option for cli builds in the editor)
2019-03-20 16:41:17 -05:00

67 lines
2.5 KiB
C#

using System;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Windows.Forms;
namespace network.loki.lokinet.win32.ui
{
public partial class dlgBootstrap : Form
{
public dlgBootstrap()
{
InitializeComponent();
if (Program.platform == PlatformID.Win32NT)
default_path = Environment.ExpandEnvironmentVariables("%APPDATA%\\.lokinet\\bootstrap.signed");
else
default_path = Environment.ExpandEnvironmentVariables("%HOME%/.lokinet/bootstrap.signed");
label2.Text = String.Format("This file is automatically saved as {0}.", default_path);
}
private WebClient wc;
private string default_path;
private void button1_Click(object sender, EventArgs e)
{
ServicePointManager.ServerCertificateValidationCallback += cert_check;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)48 | 0 | (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;
wc = new WebClient();
// add something more unique, this is the IE 5.0 default string
wc.Headers.Add("User-Agent","Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 5.0)");
try
{
wc.DownloadFile(uriBox.Text, default_path);
MessageBox.Show("LokiNET node bootstrapped", "LokiNET", MessageBoxButtons.OK, MessageBoxIcon.Information);
DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
MessageBox.Show(string.Format("An error occured while downloading data. {0}", ex.Message), "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
DialogResult = DialogResult.Abort;
}
wc.Dispose();
Close();
}
private bool cert_check(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{
// If the certificate is a valid, signed certificate, return true.
if (error == System.Net.Security.SslPolicyErrors.None)
{
return true;
}
MessageBox.Show(string.Format("X509Certificate [{0}] Policy Error: '{1}'",
cert.Subject,
error.ToString()), "SSL Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
return false;
}
private void button1_Click_1(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
}
}