コード例 #1
0
        private static NestedRotor CreateMultiRotorEnigmaMachine(string key)
        {
            NestedRotor rotorI = new NestedRotor("EKMFLGDQVZNTOWYHXUSPAIBRCJ");

            rotorI.SetOffset(key[0]);
            rotorI.SetTurnover('Q');
            NestedRotor rotorII = new NestedRotor("AJDKSIRUXBLHWTMCQGZNPYFVOE");

            rotorII.SetOffset(key[1]);
            rotorII.SetTurnover('E');
            NestedRotor rotorIII = new NestedRotor("BDFHJLCPRTXVZNYEIWGAKMUSQO");

            rotorIII.SetOffset(key[2]);
            rotorIII.SetTurnover('V');

            EnigmaReflector BReflector = new EnigmaReflector()
            {
                Mapping = "YRUHQSLDPXNGOKMIEBFZCWVJAT"
            };

            rotorIII.Drives = rotorII;
            rotorII.Drives  = rotorI;
            rotorI.Drives   = BReflector;
            return(rotorIII);
        }
コード例 #2
0
        public static NestedRotor CreateRotorIII()
        {
            NestedRotor rotor = new NestedRotor("BDFHJLCPRTXVZNYEIWGAKMUSQO");

            rotor.SetOffset('A');
            rotor.SetTurnover('V');
            return(rotor);
        }
コード例 #3
0
        public static NestedRotor CreateRotorI()
        {
            NestedRotor rotor = new NestedRotor("EKMFLGDQVZNTOWYHXUSPAIBRCJ");

            rotor.SetOffset('A');
            rotor.SetTurnover('Q');
            return(rotor);
        }
コード例 #4
0
        public static NestedRotor CreateRotorII()
        {
            NestedRotor rotor = new NestedRotor("AJDKSIRUXBLHWTMCQGZNPYFVOE");

            rotor.SetOffset('A');
            rotor.SetTurnover('E');
            return(rotor);
        }
コード例 #5
0
        public static NestedRotor CreateAlphabeticalRotor()
        {
            NestedRotor rotor = new NestedRotor("ABCDEFGHIJKLMNOPQRSTUVWXYZ");

            rotor.SetOffset('A');
            rotor.SetTurnover('Y');
            return(rotor);
        }
コード例 #6
0
        private static NestedRotor CreateSingleRotorEnigmaMachine()
        {
            NestedRotor rotorI = new NestedRotor("EKMFLGDQVZNTOWYHXUSPAIBRCJ");

            rotorI.SetOffset('A');
            rotorI.SetTurnover('Q');
            rotorI.Drives = new EnigmaReflector();
            return(rotorI);
        }
コード例 #7
0
        public void NestedRotor_SetOffset()
        {
            char        expected = 'J';
            NestedRotor Rotor_I  = CreateRotorI();

            Rotor_I.SetOffset('B');
            char actual = Rotor_I.Convert('A');

            Assert.AreEqual(expected, actual);
        }
コード例 #8
0
        public void NestedRotor_MappslettersWithRingSettingAndOffset()
        {
            char        expected = 'W';
            NestedRotor Rotor_I  = CreateRotorI();

            Rotor_I.SetRingSetting('F');
            Rotor_I.SetOffset('Y');
            char actual = Rotor_I.Convert('A');

            Assert.AreEqual(expected, actual);
        }
コード例 #9
0
        private static NestedRotor CreateSingleRotorEnigmaMachine()
        {
            NestedRotor rotorI = new NestedRotor("EKMFLGDQVZNTOWYHXUSPAIBRCJ");

            rotorI.SetOffset('A');
            rotorI.SetTurnover('Q');
            rotorI.Drives = new EnigmaReflector()
            {
                Mapping = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            };
            return(rotorI);
        }
コード例 #10
0
 public void SetRotorOffset(string offset)
 {
     _rotors.SetOffset(offset);
 }