Ejemplo n.º 1
0
        public void TestACMCalculateMd5TxtList()
        {
            var dir      = ConfigurationManager.AppSettings.Get("test_dir");
            var md5_1    = ConfigurationManager.AppSettings.Get("txt_file_md5_1").ToUpper();
            var md5_2    = ConfigurationManager.AppSettings.Get("txt_file_md5_2").ToUpper();
            var md5_3    = ConfigurationManager.AppSettings.Get("txt_file_md5_3").ToUpper();
            var testList = GenerateTxtFilesList().ToList();
            var sol      = new List <string>
            {
                testList.ElementAt(0) + " = " + md5_1,
                testList.ElementAt(1) + " = " + md5_2,
                testList.ElementAt(2) + " = " + md5_3
            };

            //OK
            CollectionAssert.AreEqual(ClassAcm.CalculateTxtMd5List(testList).ToList(), sol);
            //Exceptions
            Assert.AreEqual(ClassAcm.CalculateTxtMd5List(new List <string>()
            {
                "./umpalumpa.txt"
            }).ToList().ElementAt(0), "./umpalumpa.txt = Exception on MD5 calculation: File not found");
            File.Create(Path.ChangeExtension(testList.ElementAt(0), ".docx")).Close();
            Assert.AreEqual(ClassAcm.CalculateTxtMd5List(new List <string>()
            {
                Path.ChangeExtension(testList.ElementAt(0), ".docx")
            }).ToList().ElementAt(0), Path.ChangeExtension(testList.ElementAt(0), ".docx") + " = Exception on MD5 calculation: Wrong file format. This function can encrypt only .txt files");
            File.Create(dir + "/empty.txt").Close();
            Assert.AreEqual(ClassAcm.CalculateTxtMd5List(new List <string>()
            {
                dir + "/empty.txt"
            }).ToList().ElementAt(0), dir + "/empty.txt" + " = Exception on MD5 calculation: Empty file");
        }
Ejemplo n.º 2
0
        private void decryptFilesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var list = FileManager.OpenFile(ofd, "Select files to decrypt", true);

            if (list == null)
            {
                return;
            }

            var outDir = FileManager.SaveFile(ffd);

            if (outDir == null)
            {
                return;
            }

            var key = GetKey();

            if (string.IsNullOrEmpty(key))
            {
                return;
            }

            foreach (var l in ClassAcm.DecryptFileList(list, outDir, key))
            {
                WriteLogs(l + "\r\n");
            }
        }
Ejemplo n.º 3
0
        public void TestACMVerifyMd5AcmList()
        {
            var dir      = ConfigurationManager.AppSettings.Get("test_dir");
            var key      = ConfigurationManager.AppSettings.Get("secret_key");
            var md5_1    = ConfigurationManager.AppSettings.Get("txt_file_md5_1").ToUpper();
            var md5_2    = ConfigurationManager.AppSettings.Get("txt_file_md5_2").ToUpper();
            var md5_3    = ConfigurationManager.AppSettings.Get("txt_file_md5_3").ToUpper();
            var testList = GenerateAcmFilesList().ToList();
            var sol      = new List <string>()
            {
                testList.ElementAt(0) + " = " + md5_1 + " successfully verified",
                testList.ElementAt(1) + " = " + md5_2 + " successfully verified",
                testList.ElementAt(2) + " = " + md5_3 + " successfully verified"
            };

            //OK
            CollectionAssert.AreEqual(ClassAcm.VerifyAcmMd5List(testList, key).ToList(), sol);
            //Exceptions
            Assert.AreEqual(ClassAcm.VerifyAcmMd5List(new List <string>()
            {
                "./umpalumpa.txt"
            }, key).ToList().ElementAt(0), "./umpalumpa.txt = Exception on MD5 verification: File not found");
            Assert.AreEqual(ClassAcm.VerifyAcmMd5List(testList, "").ToList().ElementAt(0), testList.ElementAt(0) + " = Exception on MD5 verification: Null key");
            File.Create(Path.ChangeExtension(testList.ElementAt(0), ".docx")).Close();
            Assert.AreEqual(ClassAcm.VerifyAcmMd5List(new List <string>()
            {
                Path.ChangeExtension(testList.ElementAt(0), ".docx")
            }, key).ToList().ElementAt(0), Path.ChangeExtension(testList.ElementAt(0), ".docx") + " = Exception on MD5 verification: Wrong file format. This function can verify only .acm files");
            File.Create(dir + "/empty.acm").Close();
            Assert.AreEqual(ClassAcm.VerifyAcmMd5List(new List <string>()
            {
                dir + "/empty.acm"
            }, key).ToList().ElementAt(0), dir + "/empty.acm" + " = Exception on MD5 verification: Empty file");
            File.WriteAllText(testList.ElementAt(0), File.ReadAllText(testList.ElementAt(0)).Replace("Hash=", "Hash=r"));
            Assert.AreEqual(ClassAcm.VerifyAcmMd5List(testList, key).ToList().ElementAt(0), testList.ElementAt(0) + " = Exception on MD5 verification: MD5 hash functions not corresponding");
            File.Delete(testList.ElementAt(0));
            File.Create(testList.ElementAt(0)).Close();
            using (var sw = new StreamWriter(testList.ElementAt(0), true))
            {
                sw.WriteLine("ACM");
                sw.WriteLine("File=" + Path.GetFileName(testList.ElementAt(0)));
                sw.WriteLine("Hash=");
                sw.WriteLine("Size=" + ConfigurationManager.AppSettings.Get("aes_1").Length);
                sw.WriteLine("Type=AES");
                sw.WriteLine("@@@@@");
                sw.WriteLine(ConfigurationManager.AppSettings.Get("aes_1"));
                sw.Close();
            }
            Assert.AreEqual(ClassAcm.VerifyAcmMd5List(testList, key).ToList().ElementAt(0), testList.ElementAt(0) + " = Exception on MD5 verification: Error on MD5 calculation");
        }
Ejemplo n.º 4
0
        private void calculateTxtMD5ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var list = FileManager.OpenFile(ofd, "Select .txt file to calculate the MD5 of", true);

            if (list == null)
            {
                return;
            }

            foreach (var l in ClassAcm.CalculateTxtMd5List(list))
            {
                WriteLogs(l + "\r\n");
            }
        }
Ejemplo n.º 5
0
        private void verifyMD5ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var list = FileManager.OpenFile(ofd, "Select .acm file to calculate the MD5 of", true);

            if (list == null)
            {
                return;
            }

            var key = GetKey();

            if (string.IsNullOrEmpty(key))
            {
                return;
            }

            foreach (var l in ClassAcm.VerifyAcmMd5List(list, key))
            {
                WriteLogs(l + "\r\n");
            }
        }
Ejemplo n.º 6
0
        public void TestACMEncryptFileListOk()
        {
            var dir      = ConfigurationManager.AppSettings.Get("test_dir");
            var key      = ConfigurationManager.AppSettings.Get("secret_key");
            var md5_1    = ConfigurationManager.AppSettings.Get("txt_file_md5_1").ToUpper();
            var md5_2    = ConfigurationManager.AppSettings.Get("txt_file_md5_2").ToUpper();
            var md5_3    = ConfigurationManager.AppSettings.Get("txt_file_md5_3").ToUpper();
            var testList = GenerateTxtFilesList().ToList();
            var file1    = Path.ChangeExtension(testList.ElementAt(0), "acm");
            var file2    = Path.ChangeExtension(testList.ElementAt(1), "acm");
            var file3    = Path.ChangeExtension(testList.ElementAt(2), "acm");

            //OK return
            var sol = new List <string>()
            {
                $"File successfully encrypted: {file1}\r\nMD5 = {md5_1}",
                $"File successfully encrypted: {file2}\r\nMD5 = {md5_2}",
                $"File successfully encrypted: {file3}\r\nMD5 = {md5_3}",
            };

            //OK
            CollectionAssert.AreEqual(ClassAcm.EncryptFileList(testList, dir, key).ToList(), sol);
            //Exceptions
            Assert.AreEqual(ClassAcm.EncryptFileList(new List <string>()
            {
                "./umpalumpa.txt"
            }, outDir: dir, key: key).ToList().ElementAt(0), "Exception on encryption: File not found");
            Assert.AreEqual(ClassAcm.EncryptFileList(testList, "./umpalumpa", key).ToList().ElementAt(0), "Exception on encryption: Directory not found");
            Assert.AreEqual(ClassAcm.EncryptFileList(testList, dir, "").ToList().ElementAt(0), "Exception on encryption: Null key");
            File.Create(Path.ChangeExtension(testList.ElementAt(0), ".docx")).Close();
            Assert.AreEqual(ClassAcm.EncryptFileList(new List <string>()
            {
                Path.ChangeExtension(testList.ElementAt(0), ".docx")
            }, dir, key).ToList().ElementAt(0), "Exception on encryption: Wrong file format. This function can encrypt only .txt files");
            File.Create(dir + "/empty.txt").Close();
            Assert.AreEqual(ClassAcm.EncryptFileList(new List <string>()
            {
                dir + "/empty.txt"
            }, dir, key).ToList().ElementAt(0), "Exception on encryption: Empty file");
        }
Ejemplo n.º 7
0
        public void TestACMDecryptFileList()
        {
            var dir      = ConfigurationManager.AppSettings.Get("test_dir");
            var key      = ConfigurationManager.AppSettings.Get("secret_key");
            var testList = GenerateAcmFilesList().ToList();
            var sol      = new List <string>()
            {
                "File successfully decrypted: " + dir + "/" + Path.GetFileNameWithoutExtension(testList.ElementAt(0)) +
                "_dec.txt",
                "File successfully decrypted: " + dir + "/" + Path.GetFileNameWithoutExtension(testList.ElementAt(1)) +
                "_dec.txt",
                "File successfully decrypted: " + dir + "/" + Path.GetFileNameWithoutExtension(testList.ElementAt(2)) +
                "_dec.txt"
            };

            //OK
            CollectionAssert.AreEqual(ClassAcm.DecryptFileList(testList, dir, key).ToList(), sol);
            //Exceptions//Exceptions
            Assert.AreEqual(ClassAcm.DecryptFileList(new List <string>()
            {
                "./umpalumpa.txt"
            }, dir, key).ToList().ElementAt(0), "Exception on decryption: File not found");
            Assert.AreEqual(ClassAcm.DecryptFileList(testList, "./umpalumpa", key).ToList().ElementAt(0), "Exception on decryption: Directory not found");
            Assert.AreEqual(ClassAcm.DecryptFileList(testList, dir, "").ToList().ElementAt(0), "Exception on decryption: Null key");
            File.Create(Path.ChangeExtension(testList.ElementAt(0), ".docx")).Close();
            Assert.AreEqual(ClassAcm.DecryptFileList(new List <string>()
            {
                Path.ChangeExtension(testList.ElementAt(0), ".docx")
            }, dir, key).ToList().ElementAt(0), "Exception on decryption: Wrong file format. This function can decrypt only .acm files");
            File.Create(dir + "/empty.acm").Close();
            Assert.AreEqual(ClassAcm.DecryptFileList(new List <string>()
            {
                dir + "/empty.acm"
            }, dir, key).ToList().ElementAt(0), "Exception on decryption: Empty file");
            File.WriteAllText(testList.ElementAt(0), File.ReadAllText(testList.ElementAt(0)).Replace("Hash=", "Hash=r"));
            Assert.AreEqual(ClassAcm.DecryptFileList(testList, dir, key).ToList().ElementAt(0), "Exception on decryption: MD5 hash functions not corresponding");
        }