public void ConstructTest_ReflectorB() { string expectedMapping = "YRUHQSLDPXNGOKMIEBFZCWVJAT"; RotorFactory factory = new RotorFactory(); EnigmaRotor reflector = factory.GetReflector(Reflector.B); Assert.AreEqual(expectedMapping, reflector.Mapping); }
public void ConstructTest_ReflectorBThin() { string expectedMapping = "ENKQAUYWJICOPBLMDXZVFTHRGS"; RotorFactory factory = new RotorFactory(); EnigmaRotor reflector = factory.GetReflector(Reflector.BThin); Assert.AreEqual(expectedMapping, reflector.Mapping); }
public void ConstructTest_ReflectorA() { string expectedMapping = "EJMZALYXVBWFCRQUONTSPIKHGD"; RotorFactory factory = new RotorFactory(); EnigmaRotor reflector = factory.GetReflector(Reflector.A); Assert.AreEqual(expectedMapping, reflector.Mapping); }
public void ConstructTest_ReflectorCThin() { string expectedMapping = "RDOBJNTKVEHMLFCWZAXGYIPSUQ"; RotorFactory factory = new RotorFactory(); EnigmaRotor reflector = factory.GetReflector(Reflector.CThin); Assert.AreEqual(expectedMapping, reflector.Mapping); }
public void ConstructTest_ReflectorC() { string expectedMapping = "FVPJIAOYEDRZXWGCTKUQSBNMHL"; RotorFactory factory = new RotorFactory(); EnigmaRotor reflector = factory.GetReflector(Reflector.C); Assert.AreEqual(expectedMapping, reflector.Mapping); }
public void ConstructTest_RotorIV() { string expectedMapping = "ESOVPZJAYQUIRHXLNFTGKDCMWB"; char expectedTurnover = 'J'; RotorFactory factory = new RotorFactory(); EnigmaRotor result = factory.GetRotor(Rotor.IV); Assert.AreEqual(expectedMapping, result.Mapping); result.SetOffset(expectedTurnover); Assert.IsTrue(result.IsInTurnoverPosition); }
public void ConstructTest_RotorII() { string expectedMapping = "AJDKSIRUXBLHWTMCQGZNPYFVOE"; char expectedTurnover = 'E'; RotorFactory factory = new RotorFactory(); EnigmaRotor result = factory.GetRotor(Rotor.II); Assert.AreEqual(expectedMapping, result.Mapping); result.SetOffset(expectedTurnover); Assert.IsTrue(result.IsInTurnoverPosition); }
public void ConstructTest_RotorIII() { string expectedMapping = "BDFHJLCPRTXVZNYEIWGAKMUSQO"; char expectedTurnover = 'V'; RotorFactory factory = new RotorFactory(); EnigmaRotor result = factory.GetRotor(Rotor.III); Assert.AreEqual(expectedMapping, result.Mapping); result.SetOffset(expectedTurnover); Assert.IsTrue(result.IsInTurnoverPosition); }
public void ConstructTest_RotorV() { string expectedMapping = "VZBRGITYUPSDNHLXAWMJQOFECK"; char expectedTurnover = 'Z'; RotorFactory factory = new RotorFactory(); EnigmaRotor result = factory.GetRotor(Rotor.V); Assert.AreEqual(expectedMapping, result.Mapping); result.SetOffset(expectedTurnover); Assert.IsTrue(result.IsInTurnoverPosition); }
public void ConstructTest_RotorI() { string expectedMapping = "EKMFLGDQVZNTOWYHXUSPAIBRCJ"; char expectedTurnover = 'Q'; RotorFactory factory = new RotorFactory(); EnigmaRotor result = factory.GetRotor(Rotor.I); Assert.AreEqual(expectedMapping, result.Mapping); result.SetOffset(expectedTurnover); Assert.IsTrue(result.IsInTurnoverPosition); }
public void ConstructTest_RotorVI() { string expectedMapping = "JPGVOUMFYQBENHZRDKASXLICTW"; char firstTurnover = 'Z'; char secondTurnover = 'M'; RotorFactory factory = new RotorFactory(); EnigmaRotor result = factory.GetRotor(Rotor.VI); Assert.AreEqual(expectedMapping, result.Mapping); result.SetOffset(firstTurnover); Assert.IsTrue(result.IsInTurnoverPosition); result.SetOffset(secondTurnover); Assert.IsTrue(result.IsInTurnoverPosition); }
public void ConstructTest_RotorVII() { string expectedMapping = "NZJHGRCXMYSWBOUFAIVLPEKQDT"; char firstTurnover = 'Z'; char secondTurnover = 'M'; RotorFactory factory = new RotorFactory(); EnigmaRotor result = factory.GetRotor(Rotor.VII); Assert.AreEqual(expectedMapping, result.Mapping); result.SetOffset(firstTurnover); Assert.IsTrue(result.IsInTurnoverPosition); result.SetOffset(secondTurnover); Assert.IsTrue(result.IsInTurnoverPosition); }
public void ConstructTest_RotorVIII() { string expectedMapping = "FKQHTLXOCBJSPDZRAMEWNIUYGV"; char firstTurnover = 'Z'; char secondTurnover = 'M'; RotorFactory factory = new RotorFactory(); EnigmaRotor result = factory.GetRotor(Rotor.VIII); Assert.AreEqual(expectedMapping, result.Mapping); result.SetOffset(firstTurnover); Assert.IsTrue(result.IsInTurnoverPosition); result.SetOffset(secondTurnover); Assert.IsTrue(result.IsInTurnoverPosition); }
public void CanConstructReflector() { RotorFactory factory = new RotorFactory(); factory.GetReflector(Reflector.A); }
public EnigmaFactory() { _rotorFactory = new RotorFactory(); }
static void Main(string[] args) { var reflector = ReflectorFactory.CreateReflectorB(); var thinReflector = ReflectorFactory.CreateThinReflectorB(); ThinRotor thinRotor = RotorFactory.CreateRotorBeta(); Rotor slowRotor = RotorFactory.CreateRotorI(); Rotor middleRotor = RotorFactory.CreateRotorII(); Rotor fastRotor = RotorFactory.CreateRotorIII(); var spindle = new Spindle(reflector, slowRotor, middleRotor, fastRotor); //var spindle = new Spindle(thinReflector, thinRotor, slowRotor, middleRotor, fastRotor); // Ringstellung. thinRotor.Offset = ToI('A'); slowRotor.Offset = ToI('A'); middleRotor.Offset = ToI('A'); fastRotor.Offset = ToI('A'); const char thinRotorPosition = 'A'; const char slowRotorPosition = 'A'; const char middleRotorPosition = 'A'; const char fastRotorPosition = 'A'; // Initial positions. thinRotor.Position = ToI(thinRotorPosition); slowRotor.Position = ToI(slowRotorPosition); middleRotor.Position = ToI(middleRotorPosition); fastRotor.Position = ToI(fastRotorPosition); // Note: Enigma can only encrypt/decrypt the 26 letters of the alphabet. // (because of this all others: spaces, quotes, commas etc. are ignored) string plain = "The quick brown fox jumps over the lazy dog."; var plugs = new Dictionary <int, int> { //{ ToI('A'), ToI('B') }, //{ ToI('C'), ToI('D') }, //{ ToI('E'), ToI('F') }, //{ ToI('G'), ToI('H') }, //{ ToI('I'), ToI('J') }, //{ ToI('K'), ToI('L') }, //{ ToI('M'), ToI('N') }, //{ ToI('O'), ToI('P') }, //{ ToI('Q'), ToI('R') }, //{ ToI('S'), ToI('T') }, //{ ToI('U'), ToI('V') }, //{ ToI('W'), ToI('X') }, //{ ToI('Y'), ToI('Z') }, }; var plugboard = new Plugboard(spindle, plugs); string encrypted = String.Empty; Console.WriteLine("Encrypted:"); // Encrypt. foreach (char c in plain) { int input = ToI(c); if ((input < 0) || (input > 25)) { // We cannot process this char. continue; } var output = plugboard.Get(input); var ch = Convert.ToChar('A' + output); encrypted += ch; Console.Write(ch); Console.Write(' '); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Decrypted:"); // Reset rotor positions. thinRotor.Position = ToI(thinRotorPosition); slowRotor.Position = ToI(slowRotorPosition); middleRotor.Position = ToI(middleRotorPosition); fastRotor.Position = ToI(fastRotorPosition); // Decrypt. foreach (char c in encrypted) { int input = ToI(c); var output = plugboard.Get(input); var ch = Convert.ToChar('A' + output); Console.Write(ch); Console.Write(' '); } Console.ReadKey(); }
public static EnigmaReflector CreateBReflector() { RotorFactory factory = new RotorFactory(); return(factory.GetReflector(Reflector.B) as EnigmaReflector); }
public void CanConstructRotorFactory() { RotorFactory factory = new RotorFactory(); }
public void CanConstructRotor() { RotorFactory factory = new RotorFactory(); factory.GetRotor(Rotor.I); }
public static EnigmaRotor CreateRotorIII() { RotorFactory factory = new RotorFactory(); return(factory.GetRotor(Rotor.III)); }