using System;
using System.IO;
using System.Text;
using winForms = System.Windows.Forms;
namespace ROXter
{
class functions
{
public static long keyer (string key, string subkey)
{
long result;
string prom;
char[] ff = key.ToCharArray();
int a = Convert.ToInt32(ff[0]) * Convert.ToInt32(ff[5]);
int b = Convert.ToInt32(ff[1]) * Convert.ToInt32(ff[4]);
int c = Convert.ToInt32(ff[2]) * Convert.ToInt32(ff[3]);
if (subkey != "")
{
prom = Convert.ToString(a) + Convert.ToString(b) + Convert.ToString(c) + Convert.ToString(ff[3]);
result = Convert.ToInt64(prom) ^ Convert.ToInt64(subkey);
return result;
}
else
{
prom = Convert.ToString(a) + Convert.ToString(c) + Convert.ToString(b) + Convert.ToString(ff[3]);
result = Convert.ToInt64(prom);
return result;
}
}
public static string textcrypt(string text, string key, string subkey)
{
long kkey = keyer(key, subkey);
byte[] arr1 = Encoding.Unicode.GetBytes(text);
byte[] bytes = new byte[arr1.Length];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = (byte)(arr1[i] ^ kkey);
}
return Encoding.Unicode.GetString(bytes);
}
public static void filecrypt(string path, string key, string subkey)
{
long kkey = keyer(key, subkey);
byte[] arr1 = File.ReadAllBytes(path);
byte[] bytes = new byte[arr1.Length];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = (byte)(arr1[i] ^ kkey);
}
File.WriteAllBytes(path, bytes);
}
public static void foldercrypt(string path, string key, string subkey)
{
int a = 0;
long kkey = keyer(key, subkey);
string[] ss = Directory.GetFiles(path);
while (a < ss.Length)
{
byte[] arr1 = File.ReadAllBytes(ss[a]);
byte[] bytes = new byte[arr1.Length];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = (byte)(arr1[i] ^ kkey);
}
File.WriteAllBytes(ss[a], bytes);
}
}
}
}