pyenigma.py1
Encrypt/decrypt text according to enigma machine key settings
Usage
pyenigma.py [-h]
[-k
KEY_FILE]
[-d
DAY]
[-r
ROTOR
[ROTOR ...]]
[-i
RING_SETTING
[RING_SETTING ...]]
[-p
PLUGBOARD
[PLUGBOARD ...]]
[-u
REFLECTOR]
[-s
START]
[-t
TEXT]
[-f
FILE]
[-x
REPLACE_CHAR]
[-z]
[-v]
Overview
pyenigma.py is a command line for processing Enigma messages. Enigma settings can either be specified by command-line arguments, or read from a key file. If reading from a key file, the line labeled with the current day number is used unless the --day argument is provided.
Text to process can be supplied 3 ways:
•
|
if |
|---|---|
•
|
if |
•
|
otherwise the text is read from standard input |
Please see documentation for the description of the file format.
Options
-
-h, --help -
show this help message and exit
-
-k KEY_FILE, --key-file KEY_FILE -
path to key file for daily settings
-
-d DAY, --day DAY -
use the settings for day DAY when reading key file
-r ROTOR [ROTOR ...], --rotors ROTOR [ROTOR ...]
|
rotor list ordered from left to right; e.g III IV I |
|---|---|
-i RING_SETTING [RING_SETTING ...], --ring-settings RING_SETTING [RING_SETTING ...]
|
ring setting list from left to right; e.g. A A J |
-p PLUGBOARD [PLUGBOARD ...], --plugboard PLUGBOARD [PLUGBOARD ...]
|
plugboard settings |
-
-u REFLECTOR, --reflector REFLECTOR -
reflector name
-
-s START, --start START -
starting position
-
-t TEXT, --text TEXT -
text to process
-
-f FILE, --file FILE -
input file to process
-
-x REPLACE_CHAR, --replace-char REPLACE_CHAR -
if the input text contains chars not found on the enigma keyboard, replace with this char [default: X]
-
-z, --delete-chars -
if the input text contains chars not found on the enigma keyboard, delete them from the input
-
-v, --verbose -
provide verbose output; include final rotor positions
Examples
Try these commands to specify settings from the command line:
$ pyenigma.py -r III IV V -i 1 2 3 -p AB CD EF GH IJ KL MN -u B -s XYZ
$ pyenigma.py -r Beta III IV V -i A B C D -p 1/2 3/4 5/6 -u B-Thin -s WXYZ
This command will load Enigma settings from a file:
$ pyenigma.py --key-file=enigma.keys -s XYZ -t HELLOXWORLDX
Releases
Unchanged in 5 releases since Debian 9 (Stretch).