From 84f689b91a73e512b035df40bbcf556b008a3b81 Mon Sep 17 00:00:00 2001 From: MichaelTheShifter Date: Sat, 25 Jun 2016 08:10:03 -0400 Subject: Sort source code into folders. It feels better to know what's responsible for what... Plus I removed some un-needed C# stuff. --- .../Apps/ShiftnetDecryptor.cs | 156 +++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs (limited to 'source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs') diff --git a/source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs b/source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs new file mode 100644 index 0000000..dbf086e --- /dev/null +++ b/source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ShiftOS +{ + public partial class ShiftnetDecryptor : Form + { + public ShiftnetDecryptor() + { + InitializeComponent(); + } + + int i = 0; + string currentaddress = null; + string encrypted_contents = null; + + public void WriteLine(string line) + { + if(txtstatus.Text == "") + { + txtstatus.Text = line; + } + else + { + txtstatus.Text += Environment.NewLine + line; + } + } + + private void RecursiveControlSetup(Control ctrl) + { + ctrl.Font = new Font(OSInfo.GetMonospaceFont(), ctrl.Font.Size); + try + { + var pnl = (Panel)ctrl; + foreach (Control c in pnl.Controls) + { + RecursiveControlSetup(c); + } + } + catch + { + + } + } + + private void tmrdecrypt_Tick(object sender, EventArgs e) + { + switch (i) + { + case 0: + currentaddress = txtaddress.Text; + WriteLine("Checking URL..."); + if(!currentaddress.StartsWith("shiftnet://")) + { + WriteLine(" *** ERROR: Invalid URL."); + tmrdecrypt.Stop(); + btnstart.Enabled = true; + txtaddress.Enabled = true; + } + break; + case 5: + WriteLine("Making connection to Shiftnet..."); + currentaddress = currentaddress.Replace("shiftnet://", "http://playshiftos.ml/shiftnet/www/"); + break; + case 25: + WriteLine("Checking file..."); + if(!currentaddress.EndsWith(".enc")) + { + WriteLine(" *** ERROR: File not valid, must be of type .enc (encrypted file)"); + tmrdecrypt.Stop(); + btnstart.Enabled = true; + txtaddress.Enabled = true; + } + break; + case 27: + WriteLine("Downloading file contents..."); + try + { + encrypted_contents = new WebClient().DownloadString(currentaddress); + } + catch + { + WriteLine(" *** ERROR: Remote file could not be accessed."); + tmrdecrypt.Stop(); + btnstart.Enabled = true; + txtaddress.Enabled = true; + } + break; + case 30: + WriteLine("Download successful. Determining encryption algorithm. This may take a bit..."); + break; + case 75: + int r = new Random().Next(0, 100); + if(r >= 25 && r <= 75) + { + WriteLine("Encryption algorithm determined, beginning decryption."); + } + else + { + WriteLine("Decryption failed."); + tmrdecrypt.Stop(); + btnstart.Enabled = true; + txtaddress.Enabled = true; + } + break; + case 95: + string decrypted = API.Encryption.Decrypt(encrypted_contents); + int lastslash = currentaddress.LastIndexOf("/"); + int len = currentaddress.Length - lastslash; + string fname = currentaddress.Substring(lastslash, len).Replace(".enc", ".lua"); + WriteLine("Decryption successful. Saving to /Home/Decryptions/" + fname + "..."); + if(!Directory.Exists(Paths.Home + "Decryptions")) + { + Directory.CreateDirectory(Paths.Home + "Decryptions"); + } + File.WriteAllText(Paths.Home + $"Decryptions{OSInfo.DirectorySeparator}{fname}", decrypted); + break; + case 100: + WriteLine("Decryption successful."); + tmrdecrypt.Stop(); + currentaddress = null; + i = 0; + encrypted_contents = null; + btnstart.Enabled = true; + txtaddress.Enabled = true; + + break; + } + + i += 1; + pgstatus.Value = i; + } + + private void btnstart_Click(object sender, EventArgs e) + { + i = 0; + tmrdecrypt.Start(); + btnstart.Enabled = false; + txtaddress.Enabled = false; + } + + private void ShiftnetDecryptor_Load(object sender, EventArgs e) + { + RecursiveControlSetup(panel1); + } + } +} -- cgit v1.2.3