C++ implementation of the WWII German cipher machine.
- Build enigma
bazel build :enigma
- Run enigma
bazel-bin/enigma
- --rotors : Displays available rotors
- --debug [true/false] : Show inputs/outputs of each rotor/reflector during computation
- --config : Loads available rotors from a rotor configuration file. See rotor.config for example.
- --set_rotors <Rotor 1 name>,...<Rotor 2 name>, : Defines current rotor configuration in Enigma
- example: --set_rotors 1,2,3,B loads Rotor 1, Rotor 2, Rotor 3, Reflector B
- --set_pos : Sets current states of each rotor
- example: --set_rotors_pos A,B,C sets Rotor [1] to A, Rotor [2] to B and Rotor [3] to C. Reflectors don't have a state, so no need to set a state for the reflector.
- Type words at > to encode/decode messages.