public void ReverseVigenereReturnsExact()
        {
            string key     = "tESt KeY!";
            string message = "Can you READ this 100%?!";

            ReverseVigenere rv  = new ReverseVigenere(key);
            string          rvE = rv.Encipher(message);
            string          rvD = rv.Decipher(rvE);

            Assert.AreEqual(message, rvD);
        }
        public void MultilayerReturnsExact()
        {
            string              key     = "tESt KeY!";
            string              message = "Can you READ this 100%?!";
            LongVigenere        lv      = new LongVigenere(key);
            TranspositionMatrix tm      = new TranspositionMatrix(key);
            ReverseVigenere     rv      = new ReverseVigenere(key);
            string              lvE     = lv.Encipher(message);
            string              tmE     = tm.Encipher(lvE);
            string              rvE     = rv.Encipher(tmE);
            string              rvD     = rv.Decipher(rvE);
            string              tmD     = tm.Decipher(rvD);
            string              lvD     = lv.Decipher(tmD);

            Assert.AreEqual(message, lvD);
        }
Example #3
0
        public bool Decipher()
        {
            bool                fileCreated = false;
            LongVigenere        lv          = new LongVigenere(Key);
            TranspositionMatrix tm          = new TranspositionMatrix(Key);
            ReverseVigenere     rv          = new ReverseVigenere(Key);

            try
            {
                string fileName      = Path.GetFileName(FullPath);
                string fileNameNoExt = Path.GetFileNameWithoutExtension(fileName);
                string fileExt       = Path.GetExtension(fileName);

                string fileDir    = FullPath.Substring(0, FullPath.Length - fileName.Length);
                string createFile = fileNameNoExt + "MLC" + fileExt;
                string createFull = Path.Combine(fileDir, createFile);

                using (StreamReader sr = new StreamReader(FullPath))
                {
                    while (!sr.EndOfStream)
                    {
                        using (StreamWriter sw = new StreamWriter(createFull, true))
                        {
                            string rvD = rv.Decipher(sr.ReadLine());
                            string tmD = tm.Decipher(rvD);
                            string lvD = lv.Decipher(tmD);
                            sw.WriteLine(lvD);
                        }
                    }
                }
                if (Path.IsPathFullyQualified(createFull))
                {
                    fileCreated = true;
                }
                File.Move(createFull, FullPath, true);
            }
            catch (Exception e)
            {
                Console.WriteLine("Invalid input for file path...");
            }
            return(fileCreated);
        }