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"); }
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"); } }