diff --git a/PolyChat/Controller.cs b/PolyChat/Controller.cs
index 5f114e6..1d0c322 100644
--- a/PolyChat/Controller.cs
+++ b/PolyChat/Controller.cs
@@ -11,6 +11,9 @@ using System;
using System.Text.Json;
using System.Text;
using System.Security.Cryptography;
+using Windows.Security.Cryptography.Core;
+using Windows.Security.Cryptography;
+using Windows.Storage.Streams;
namespace PolyChat
{
@@ -37,6 +40,8 @@ namespace PolyChat
{
UIController = uiController;
OwnIP = getIP();
+ loadChats();
+ encode("test");
Serve();
}
@@ -168,6 +173,8 @@ namespace PolyChat
///
/// sends chatlogs as json array to uiController wit corrosponding ip
+ ///
+ /// in ui when chat is clicked connection gets established
///
///
public void loadChats()
@@ -203,41 +210,6 @@ namespace PolyChat
}
}
- /*
- public void loadChat(String ip)
- {
- //TODO: also load chatlogs when user tries to connect
- //load dir and create if non existant
- if (Directory.Exists("U:\\PolyChat\\Saves"))
- {
- Debug.WriteLine("--Path exists.--");
- }
- else
- {
- Directory.CreateDirectory("U:\\PolyChat\\Saves");
- Debug.WriteLine("--Path Created--.");
- }
-
- //go through all files and send ip and json array to ui
- String[] filepaths = Directory.GetFiles("U:\\PolyChat\\Saves");
- if (filepaths.Length > 0)
- {
- Debug.WriteLine("---Loading Saves");
- foreach (String path in filepaths)
- {
- Debug.WriteLine($"--{path}");
- String jsonArr = File.ReadAllText(path);
- String ip = Path.GetFileName(path);
- ip = ip.Substring(0, ip.Length - 4);
- Debug.WriteLine($"-{ip}");
- Debug.WriteLine(jsonArr);
- Connect(ip);
- UIController.OnIncomingConnection(ip);
- UIController.OnIncomingMessages(ip, jsonArr);
- }
- }
- }
- */
///
/// Saves incoming chat message to
///
@@ -296,13 +268,9 @@ namespace PolyChat
private void encode(string json)
{
- byte[] plaintext = Encoding.UTF8.GetBytes(json);
- byte[] entropy = new byte[20];
- using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
- {
- rng.GetBytes(entropy);
- }
-
+ String ecryptetText = FileManager.encrypt(json);
+ Debug.WriteLine(ecryptetText);
+ //Debug.WriteLine(FileManager.decrypt(ecryptetText));
}
}
}
diff --git a/PolyChat/Models/FileManager.cs b/PolyChat/Models/FileManager.cs
new file mode 100644
index 0000000..815873c
--- /dev/null
+++ b/PolyChat/Models/FileManager.cs
@@ -0,0 +1,84 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.IO;
+using System.Security.Cryptography;
+
+
+namespace PolyChat.Models
+{
+ class FileManager
+ {
+ public static String encrypt(String toEncrypt)
+ {
+ try {
+ string textToEncrypt = toEncrypt;
+ string ToReturn = "";
+ string publickey = "santhosh";
+ string secretkey = "engineer";
+ byte[] secretkeyByte = { };
+ secretkeyByte = System.Text.Encoding.UTF8.GetBytes(secretkey);
+ byte[] publickeybyte = { };
+ publickeybyte = System.Text.Encoding.UTF8.GetBytes(publickey);
+ MemoryStream ms = null;
+ CryptoStream cs = null;
+ byte[] inputbyteArray = System.Text.Encoding.UTF8.GetBytes(textToEncrypt);
+ using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
+ {
+ ms = new MemoryStream();
+ cs = new CryptoStream(ms, des.CreateEncryptor(publickeybyte, secretkeyByte), CryptoStreamMode.Write);
+ cs.Write(inputbyteArray, 0, inputbyteArray.Length);
+ cs.FlushFinalBlock();
+ ToReturn = Convert.ToBase64String(ms.ToArray());
+ }
+ return ToReturn;
+ } catch (Exception ex)
+ {
+ throw new Exception(ex.Message, ex.InnerException);
+ }
+
+ }
+
+
+ public static String decrypt(String toDecrypt)
+ {
+ try
+ {
+ string textToDecrypt = toDecrypt;
+ string ToReturn = "";
+ string publickey = "santhosh";
+ string privatekey = "engineer";
+ byte[] privatekeyByte = { };
+ privatekeyByte = System.Text.Encoding.UTF8.GetBytes(privatekey);
+ byte[] publickeybyte = { };
+ publickeybyte = System.Text.Encoding.UTF8.GetBytes(publickey);
+ MemoryStream ms = null;
+ CryptoStream cs = null;
+ byte[] inputbyteArray = new byte[textToDecrypt.Replace(" ", "+").Length];
+ inputbyteArray = Convert.FromBase64String(textToDecrypt.Replace(" ", "+"));
+ using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
+ {
+ ms = new MemoryStream();
+ cs = new CryptoStream(ms, des.CreateDecryptor(publickeybyte, privatekeyByte), CryptoStreamMode.Write);
+ cs.Write(inputbyteArray, 0, inputbyteArray.Length);
+ cs.FlushFinalBlock();
+ Encoding encoding = Encoding.UTF8;
+ ToReturn = encoding.GetString(ms.ToArray());
+ }
+ return ToReturn;
+ }
+ catch (Exception ae)
+ {
+ throw new Exception(ae.Message, ae.InnerException);
+ }
+ }
+ }
+
+
+
+
+
+
+}
diff --git a/PolyChat/PolyChat.csproj b/PolyChat/PolyChat.csproj
index 12041a4..c047509 100644
--- a/PolyChat/PolyChat.csproj
+++ b/PolyChat/PolyChat.csproj
@@ -137,6 +137,7 @@
+