aboutsummaryrefslogtreecommitdiff
path: root/source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs
diff options
context:
space:
mode:
authorMichaelTheShifter <[email protected]>2016-06-25 08:10:03 -0400
committerMichaelTheShifter <[email protected]>2016-06-25 08:10:03 -0400
commit84f689b91a73e512b035df40bbcf556b008a3b81 (patch)
treeda1020b2b5866c7ce300ac7b9c97112fe80fa1b3 /source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs
parent6707e2076a63dafab686fd533c95fb8ceb6c23fa (diff)
downloadshiftos-c--84f689b91a73e512b035df40bbcf556b008a3b81.tar.gz
shiftos-c--84f689b91a73e512b035df40bbcf556b008a3b81.tar.bz2
shiftos-c--84f689b91a73e512b035df40bbcf556b008a3b81.zip
Sort source code into folders.
It feels better to know what's responsible for what... Plus I removed some un-needed C# stuff.
Diffstat (limited to 'source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs')
-rw-r--r--source/WindowsFormsApplication1/Apps/ShiftnetDecryptor.cs156
1 files changed, 156 insertions, 0 deletions
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);
+ }
+ }
+}