It is an Enigma machine simulator for ANSI/TERM environments. The simulator
is based on M3 Enigma.
WARNING: This software is merely a toy do not use it to protect your data.
Basically you have got this simple "term/geek" interface (link your viewer with -limagination):
This repository has some submodules so the simplest way of clonning it is:
monster@CraterLake:~# git clone https://github.com/rafael-santiago/ansiterm-enigma --recursive
In order to build this project you need Hefesto. Once Hefesto installed
and working on your system for building this simulator, supposing that you cloned it into ansiterm-enigma sub-directory,
you should proceed as follows:
monster@CraterLake:~# cd ansiterm-enigma/src
monster@CraterLake:~/ansiterm-enigma/src# hefesto
Being under the src sub-directory:
monster@CraterLake:~/ansiterm-enigma/src# hefesto --install
It also installs a tiny man page that you can use as future command reference/cheat sheet.
For uninstalling issues you should use hefesto --uninstall.
Tip: if you are on FreeBSD maybe you should have installed a previous application also called "enigma", in this case
in order to access this enigma simulator (after installing) you should explicitly call /usr/local/bin/enigma.
You need to pass through command line seven mandatory options to this simulator:
- The option
--reflectorto indicate the used reflector. It can be:borc. - The option
--l-rotorto indicate what rotor to use on the left. It can be:i,ii,iii,iv,v,vi,viiorviii. - The option
--m-rotorto indicate what rotor to use at the middle. It can be:i,ii,iii,iv,v,vi,viiorviii. - The option
--r-rotorto indicate what rotor to use on the right. It can be:i,ii,iii,iv,v,vi,viiorviii. - The option
--l-rotor-atto indicate the initial position of thel-rotor. It can be a letter betweenAandZ. - The option
--m-rotor-atto indicate the initial position of them-rotor. It can be a letter betweenAandZ. - The option
--r-rotor-atto indicate the initial position of ther-rotor. It can be a letter betweenAandZ.
Also there are four optional settings:
- The option
--l-ringwhich specifies the ring offset of the left rotor. It can be a value between1and26. The default is1. - The option
--m-ringwhich specifies the ring offset of the middle rotor. It can be a value between1and26. The default is1. - The option
--r-ringwhich specifies the ring offset of the right rotor. It can be a value between1and26. The default is1. - The option
--plugboardwhich can specifies until ten swap pairs in form<letterX>/<letterY>,...,<letterX'>/<letterY'>. No swaps are assumed by default.
Follows an example:
monster@CraterLake:~# enigma --reflector=c\
> --l-rotor=iv --l-rotor-at=y\
> --m-rotor=vii --m-rotor-at=s\
> --r-rotor=ii --r-rotor-at=z\
> --plugboard=A/S,D/F,M/N,C/X
You need to press ESC to exit.
Enjoy!
