public MainWindow() { InitializeComponent(); _machine = new EnigmaMachine(); _availableLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; _pairs = new Dictionary <int, Tuple <Button, Button> >(); _colors = new Dictionary <int, string>() { { 0, "#555555" }, { 1, "#f72338" }, { 2, "#22f03a" }, { 3, "#13e8e8" }, { 4, "#eaff61" }, { 5, "#b14df0" }, { 6, "#f7b543" }, { 7, "#2e990b" }, { 8, "#7a0006" }, { 9, "#090269" }, { 10, "#808a5a" }, { 11, "#411059" }, { 12, "#73470a" }, { 13, "#ff29db" } }; _colorPosition = 1; }
public void Initialize() { Dictionary <string, string> plugBoard = new Dictionary <string, string>(); plugBoard.Add("A", "M"); plugBoard.Add("F", "I"); plugBoard.Add("N", "V"); plugBoard.Add("P", "S"); plugBoard.Add("T", "U"); plugBoard.Add("W", "Z"); EnigmaSettings settings = new EnigmaSettings(); PlugboardBase pb = new PlugboardBase(); pb.Layout = plugBoard; settings.PlugBoard = pb; settings.Reflector = Constants.Reflectors.A; settings.Rotors.Add(Constants.Rotors.III); settings.Rotors.Add(Constants.Rotors.I); settings.Rotors.Add(Constants.Rotors.II); settings.RotorPositions.Add(Constants.Alpha.L); settings.RotorPositions.Add(Constants.Alpha.B); settings.RotorPositions.Add(Constants.Alpha.A); settings.Rotors[0].Ringstellung = Constants.Alpha.V; settings.Rotors[1].Ringstellung = Constants.Alpha.M; settings.Rotors[2].Ringstellung = Constants.Alpha.X; engimaMachine = new M3(settings); }
public void GetSetRotorSettings() { string expected = "ABC"; IEnigmaMachine enigma = BuildEnigma(); enigma.SetRotorOffset(expected); string actual = enigma.GetRotorSettings(); Assert.AreEqual(expected, actual); }
public void LongCryptOverDoubleStep() { string expectedCryptText = "LNTOXWXEPYMHXCTALPRBBRGRAWKQJGKHLXLATLFQPCHEESJTBCKEUKKXCUCPIUTUZZBECEOSVIOVQCWTOACQRNAJKBBESCWPMHAPZKVUDZGBWTUGDUEQCTWFXSOBLTEDEOESBXIJYBPJSRXELEAFUPEFPBOFAPIIUZXLGABEZNHTPFNTMLSQTTYGUSFIODXFIESMAALYHJBDPXFPGVZTTAQJGZPIWNOKHBJXLZXZ"; string plaintext = "vonvonjlooksjhffttteinseinsdreizwoyyqnnsneuninhaltxxbeiangriffunterwassergedruecktywabosxletztergegnerstandnulachtdreinuluhrmarquantonjotaneunachtseyhsdreiyzwozwonulgradyachtsmystossenachxeknsviermbfaelltynnnnnnooovierysichteinsnull"; IEnigmaMachine enigma = BuildEnigma(); enigma.SetRotorOffset("ADU"); string actualCryptText = enigma.Crypt(plaintext); Assert.AreEqual(expectedCryptText, actualCryptText); }
public void SimpleCryptNotOverDoubleStep() { string plainText = "RBMLWDESXRUEPIWEDYLDZUKTTXGGKHLTFHKXLXFDJDMMI"; string cryptText = "MAYBEINVADINGRUSSIAINTHEWINTERWASNOTAGOODIDEA"; IEnigmaMachine enigma = BuildEnigma(); enigma.SetRotorOffset("AAZ"); string actual = enigma.Crypt(plainText); Assert.AreEqual(cryptText, actual); }
public void SimpleCryptOverDoubleStep() { string plainText = "IHEARTHEWEATHERINARGENTINAISNICETHISTIMEOFYEAR"; string cryptText = "UFSMHLYCAOFPCYDSBBVHLMNAWBXTSKANKGLZGBHIHAXIRU"; IEnigmaMachine enigma = BuildEnigma(); enigma.SetRotorOffset("ADV"); string actual = enigma.Crypt(plainText); Assert.AreEqual(cryptText, actual); }
private static char EncryptLetter(this IEnigmaMachine machine, char letter) { if (!char.IsLetter(letter)) { return(letter); } bool isLower = char.IsLower(letter); letter = machine.PressKey(char.ToUpperInvariant(letter)); letter = isLower ? char.ToLowerInvariant(letter) : letter; return(letter); }
public void Initialize() { EnigmaSettings settings = new EnigmaSettings(); settings.Rotors.Add(Constants.Rotors.II); settings.Rotors.Add(Constants.Rotors.I); settings.Rotors.Add(Constants.Rotors.III); settings.RotorPositions.Add(16); settings.RotorPositions.Add(17); settings.RotorPositions.Add(26); settings.Reflector = Constants.Reflectors.A; engimaMachine = new KRailway(settings); }
public void Initialize() { Dictionary <string, string> plugBoard = new Dictionary <string, string>(); plugBoard.Add("A", "T"); plugBoard.Add("B", "L"); plugBoard.Add("D", "F"); plugBoard.Add("G", "J"); plugBoard.Add("H", "M"); plugBoard.Add("N", "W"); plugBoard.Add("O", "P"); plugBoard.Add("Q", "Y"); plugBoard.Add("R", "Z"); plugBoard.Add("V", "X"); EnigmaSettings settings = new EnigmaSettings(); PlugboardBase pb = new PlugboardBase(); pb.Layout = plugBoard; settings.PlugBoard = pb; //settings.Rotors.Add(new Rotor("EKMFLGDQVZNTOWYHXUSPAIBRCJ", "I", new List<string>() { "Y" }, new List<string>() { "Q" }, new List<string>() { "R" })); //settings.Rotors.Add(new Rotor("ESOVPZJAYQUIRHXLNFTGKDCMWB", "IV", new List<string>() { "R" }, new List<string>() { "J" }, new List<string>() { "K" })); //settings.Rotors.Add(new Rotor("AJDKSIRUXBLHWTMCQGZNPYFVOE", "II", new List<string>() { "M" }, new List<string>() { "E" }, new List<string>() { "F" })); //settings.Rotors.Add(new Rotor("LEYJVCNIXWPBQMDRTAKZGFUHOS", "Beta", null, null, null)); settings.Rotors.Add(Constants.Rotors.I); settings.Rotors.Add(Constants.Rotors.IV); settings.Rotors.Add(Constants.Rotors.II); settings.Rotors.Add(Constants.Rotors.Beta); settings.RotorPositions.Add(Constants.Alpha.A); settings.RotorPositions.Add(Constants.Alpha.N); settings.RotorPositions.Add(Constants.Alpha.J); settings.RotorPositions.Add(Constants.Alpha.V); settings.Rotors[0].Ringstellung = Constants.Alpha.V; settings.Rotors[1].Ringstellung = Constants.Alpha.A; settings.Rotors[2].Ringstellung = Constants.Alpha.A; settings.Rotors[3].Ringstellung = Constants.Alpha.A; settings.Reflector = Constants.Reflectors.BThin; engimaMachine = new M4(settings); }
public void Initialize() { Dictionary <string, string> plugBoard = new Dictionary <string, string>(); plugBoard.Add("A", "X"); plugBoard.Add("B", "K"); plugBoard.Add("D", "E"); plugBoard.Add("G", "J"); plugBoard.Add("H", "M"); plugBoard.Add("N", "W"); plugBoard.Add("O", "P"); plugBoard.Add("Q", "Y"); plugBoard.Add("R", "Z"); plugBoard.Add("V", "T"); EnigmaSettings settings = new EnigmaSettings(); PlugboardBase pb = new PlugboardBase(); pb.Layout = plugBoard; settings.PlugBoard = pb; settings.Rotors.Add(Constants.Rotors.II); settings.Rotors.Add(Constants.Rotors.IV); settings.Rotors.Add(Constants.Rotors.III); settings.Rotors.Add(Constants.Rotors.Beta); settings.RotorPositions.Add(Constants.Alpha.S); settings.RotorPositions.Add(Constants.Alpha.S); settings.RotorPositions.Add(Constants.Alpha.O); settings.RotorPositions.Add(Constants.Alpha.B); settings.Rotors[0].Ringstellung = Constants.Alpha.G; settings.Rotors[1].Ringstellung = Constants.Alpha.C; settings.Rotors[2].Ringstellung = Constants.Alpha.C; settings.Rotors[3].Ringstellung = Constants.Alpha.A; settings.Reflector = Constants.Reflectors.CThin; engimaMachine = new M4(settings); }
public void Initialize() { Dictionary <string, string> plugBoard = new Dictionary <string, string>(); plugBoard.Add("A", "E"); plugBoard.Add("B", "F"); plugBoard.Add("C", "M"); plugBoard.Add("D", "Q"); plugBoard.Add("H", "U"); plugBoard.Add("J", "N"); plugBoard.Add("L", "X"); plugBoard.Add("P", "R"); plugBoard.Add("S", "Z"); plugBoard.Add("V", "W"); EnigmaSettings settings = new EnigmaSettings(); PlugboardBase pb = new PlugboardBase(); pb.Layout = plugBoard; settings.PlugBoard = pb; settings.Rotors.Add(Constants.Rotors.VIII); settings.Rotors.Add(Constants.Rotors.VI); settings.Rotors.Add(Constants.Rotors.V); settings.Rotors.Add(Constants.Rotors.Beta); settings.RotorPositions.Add(Constants.Alpha.Z); settings.RotorPositions.Add(Constants.Alpha.S); settings.RotorPositions.Add(Constants.Alpha.D); settings.RotorPositions.Add(Constants.Alpha.C); settings.Rotors[0].Ringstellung = Constants.Alpha.L; settings.Rotors[1].Ringstellung = Constants.Alpha.E; settings.Rotors[2].Ringstellung = Constants.Alpha.P; settings.Rotors[3].Ringstellung = Constants.Alpha.E; settings.Reflector = Constants.Reflectors.CThin; engimaMachine = new M4(settings); }
public void Initialize() { Dictionary <string, string> plugBoard = new Dictionary <string, string>(); plugBoard.Add("A", "Y"); plugBoard.Add("B", "F"); plugBoard.Add("D", "L"); plugBoard.Add("G", "X"); plugBoard.Add("H", "Z"); plugBoard.Add("N", "S"); plugBoard.Add("O", "C"); plugBoard.Add("Q", "T"); plugBoard.Add("R", "J"); plugBoard.Add("V", "P"); EnigmaSettings settings = new EnigmaSettings(); PlugboardBase pb = new PlugboardBase(); pb.Layout = plugBoard; settings.PlugBoard = pb; settings.Rotors.Add(Constants.Rotors.III); settings.Rotors.Add(Constants.Rotors.I); settings.Rotors.Add(Constants.Rotors.V); settings.Rotors.Add(Constants.Rotors.Gamma); settings.RotorPositions.Add(Constants.Alpha.E); settings.RotorPositions.Add(Constants.Alpha.D); settings.RotorPositions.Add(Constants.Alpha.O); settings.RotorPositions.Add(Constants.Alpha.C); settings.Rotors[0].Ringstellung = Constants.Alpha.P; settings.Rotors[1].Ringstellung = Constants.Alpha.M; settings.Rotors[2].Ringstellung = Constants.Alpha.I; settings.Rotors[3].Ringstellung = Constants.Alpha.P; settings.Reflector = Constants.Reflectors.CThin; engimaMachine = new M4(settings); }
public void Initialize() { Dictionary <string, string> plugBoard = new Dictionary <string, string>(); plugBoard.Add("A", "N"); plugBoard.Add("E", "Z"); plugBoard.Add("H", "K"); plugBoard.Add("I", "J"); plugBoard.Add("L", "R"); plugBoard.Add("M", "Q"); plugBoard.Add("O", "T"); plugBoard.Add("P", "V"); plugBoard.Add("S", "W"); plugBoard.Add("U", "X"); EnigmaSettings settings = new EnigmaSettings(); PlugboardBase pb = new PlugboardBase(); pb.Layout = plugBoard; settings.PlugBoard = pb; settings.Reflector = Constants.Reflectors.B; settings.EntryWheel = Constants.Rotors.Etw; settings.Rotors.Add(Constants.Rotors.VIII); settings.Rotors.Add(Constants.Rotors.VI); settings.Rotors.Add(Constants.Rotors.III); settings.Rotors[0].Ringstellung = Constants.Alpha.M; settings.Rotors[1].Ringstellung = Constants.Alpha.H; settings.Rotors[2].Ringstellung = Constants.Alpha.A; settings.RotorPositions.Add(Constants.Alpha.V); settings.RotorPositions.Add(Constants.Alpha.Z); settings.RotorPositions.Add(Constants.Alpha.U); engimaMachine = new M3(settings); }
public void Initialize() { Dictionary <string, string> plugBoard = new Dictionary <string, string>(); plugBoard.Add("A", "V"); plugBoard.Add("B", "S"); plugBoard.Add("C", "G"); plugBoard.Add("D", "L"); plugBoard.Add("F", "U"); plugBoard.Add("H", "Z"); plugBoard.Add("I", "N"); plugBoard.Add("K", "M"); plugBoard.Add("O", "W"); plugBoard.Add("R", "X"); EnigmaSettings settings = new EnigmaSettings(); PlugboardBase pb = new PlugboardBase(); pb.Layout = plugBoard; settings.PlugBoard = pb; settings.Reflector = Constants.Reflectors.B; settings.Rotors.Add(Constants.Rotors.V); settings.Rotors.Add(Constants.Rotors.IV); settings.Rotors.Add(Constants.Rotors.II); settings.RotorPositions.Add(Constants.Alpha.A); settings.RotorPositions.Add(Constants.Alpha.L); settings.RotorPositions.Add(Constants.Alpha.B); settings.Rotors[0].Ringstellung = Constants.Alpha.L; settings.Rotors[1].Ringstellung = Constants.Alpha.U; settings.Rotors[2].Ringstellung = Constants.Alpha.B; engimaMachine = new M3(settings); }
public void CanCrypt() { IEnigmaMachine enigma = BuildEnigma(); enigma.Crypt("Test"); }
public void CanSetRotorOffset() { IEnigmaMachine enigma = BuildEnigma(); enigma.SetRotorOffset("AAA"); }
public void SetUp() { _machine = new EnigmaMachine(); _args = new List <MachineArgs>() { new MachineArgs { RotorOneArgs = new RotorArgs { Number = RotorNumber.One, StartPosition = 0 }, RotorTwoArgs = new RotorArgs { Number = RotorNumber.Two, StartPosition = 5 }, RotorThreeArgs = new RotorArgs { Number = RotorNumber.Three, StartPosition = 15 }, LettersToSwap = new List <Tuple <char, char> >() }, new MachineArgs { RotorOneArgs = new RotorArgs { Number = RotorNumber.Five, StartPosition = 6 }, RotorTwoArgs = new RotorArgs { Number = RotorNumber.Four, StartPosition = 9 }, RotorThreeArgs = new RotorArgs { Number = RotorNumber.Three, StartPosition = 1 }, LettersToSwap = new List <Tuple <char, char> >() { new Tuple <char, char>('A', 'E'), new Tuple <char, char>('G', 'K') } }, new MachineArgs { RotorOneArgs = new RotorArgs { Number = RotorNumber.Four, StartPosition = 14 }, RotorTwoArgs = new RotorArgs { Number = RotorNumber.Two, StartPosition = 24 }, RotorThreeArgs = new RotorArgs { Number = RotorNumber.Four, StartPosition = 17 }, LettersToSwap = new List <Tuple <char, char> >() { new Tuple <char, char>('C', 'F'), new Tuple <char, char>('E', 'T'), new Tuple <char, char>('P', 'L') } } }; }
public void CanGetRotorSettings() { IEnigmaMachine enigma = BuildEnigma(); enigma.GetRotorSettings(); }
public EnigmaEncoder(IEnigmaMachine enigmaMachine) { _enigmaMachine = enigmaMachine; }
public void CanConstructEnigmaM4() { EnigmaFactory factory = new EnigmaFactory(); IEnigmaMachine enigma = factory.GetEnigmaM4(Reflector.BThin, new Rotor[] { Rotor.I, Rotor.I, Rotor.III, Rotor.Beta }); }
public static void SetupPlugboard(this IEnigmaMachine machine, IEnumerable <char> mappings) { machine.SetupPlugboard(new string(mappings.ToArray())); }
public void Cleanup() { engimaMachine = null; }
public static string Encrypt(this IEnigmaMachine machine, string text) { return(new string(text.ToCharArray().Select(machine.EncryptLetter).ToArray())); }