mirror of https://github.com/qwqdanchun/DcRat.git
85 lines
3.3 KiB
C#
85 lines
3.3 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
using System.IO;
|
|
using System.IO.Compression;
|
|
|
|
namespace Server.Forms
|
|
{
|
|
public partial class FormCertificate : Form
|
|
{
|
|
public FormCertificate()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void FormCertificate_Load(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string backup = Application.StartupPath + "\\BackupCertificate.zip";
|
|
if (File.Exists(backup))
|
|
{
|
|
MessageBox.Show(this, "Found a zip backup, Extracting (BackupCertificate.zip)", "Certificate backup", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
ZipFile.ExtractToDirectory(backup, Application.StartupPath);
|
|
Settings.ServerCertificate = new X509Certificate2(Settings.CertificatePath);
|
|
this.Close();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(this, ex.Message, "Certificate", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
}
|
|
}
|
|
|
|
private async void Button1_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrWhiteSpace(textBox1.Text)) return;
|
|
|
|
button1.Text = "Please wait";
|
|
button1.Enabled = false;
|
|
textBox1.Enabled = false;
|
|
await Task.Run(() =>
|
|
{
|
|
try
|
|
{
|
|
string backup = Application.StartupPath + "\\BackupCertificate.zip";
|
|
Settings.ServerCertificate = Helper.CreateCertificate.CreateCertificateAuthority(textBox1.Text, 4096);
|
|
File.WriteAllBytes(Settings.CertificatePath, Settings.ServerCertificate.Export(X509ContentType.Pkcs12));
|
|
|
|
using (ZipArchive archive = ZipFile.Open(backup, ZipArchiveMode.Create))
|
|
{
|
|
archive.CreateEntryFromFile(Settings.CertificatePath, Path.GetFileName(Settings.CertificatePath));
|
|
}
|
|
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
|
|
{
|
|
MessageBox.Show(this, @"Remember to save the BackupCertificate.zip", "Certificate", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
this.Close();
|
|
}));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
|
|
{
|
|
MessageBox.Show(this, ex.Message, "Certificate", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
button1.Text = "OK";
|
|
button1.Enabled = true;
|
|
textBox1.Enabled = true;
|
|
}));
|
|
}
|
|
});
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(this, ex.Message, "Certificate", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
button1.Text = "Ok";
|
|
button1.Enabled = true;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|