/enigma

Primary LanguageRust

A small Enimga (I/M3) emulator written in Rust. I plan to add the ability to "crack" the Enigma in various ways soon.

Usage

Usage: enigma [OPTIONS]
Options:
      --reflector <REFLECTOR>           [possible values: A, B, C]
      --rotors <ROTOR> <ROTOR> <ROTOR>  [possible values: I, II, III, IV, V]
      --rings <NUM> <NUM> <NUM>         [possible values: 1 to 26]
      --plugs [<PLUGS>...]              [possible values: two unique alphabet characters]
      --key <CHAR> <CHAR> <CHAR>
      --input <INPUT>
  -h, --help                            Print help
  -V, --version                         Print version

Example

The following example is taken from the 1930s Enigma Instruction Manual, originally for the Model I.

> enigma --reflector A --rotors II I III --rings 24 13 22 --plugs AM FI NV PS TU WZ --key A B L --input "GCDSE AHUGW TQGRK VLFGX UCALX VYMIG MMNMF"
FEIND LIQEI NFANT ERIEK OLONN EBEOB AQTET

References