- Developed and tested on Python 3.6.1 for Windows.
- support for other python versions (>= 3.6.0) and other operating systems is likely, but not guaranteed.
- Designed to be invoked as a module, but can be run from the
__main__.py
script just as well. - Can be imported and used in your own applications, but no documentation is provided yet (though it shouldn't be too hard to figure out).
- Requires
requests
module and internet connection to correctly build readme (conversion from Markdown to reStructuredText).
This package is now available on PyPI, and may be installed using pip install bitnigma
or
directly from the repo using pip install git+git:https://github.com/spgill/bitnigma
.
usage: python -m bitnigma [-h] [--plugboard PLUGBOARD [PLUGBOARD ...]]
[--rotors ROTORS [ROTORS ...]] [--reflector REFLECTOR]
[--state STATE] [--state-create] [--state-update]
[--state-print] [--state-seed STATE_SEED]
[--state-seed-file STATE_SEED_FILE] [--input INPUT]
[--input-std] [--input-path INPUT_PATH] [--output-std]
[--output-path OUTPUT_PATH] [--chunk-size CHUNK_SIZE]
[--benchmark] [--progress]
Process some data through a simulated Enigma machine
optional arguments:
-h, --help show this help message and exit
--plugboard PLUGBOARD [PLUGBOARD ...], -pl PLUGBOARD [PLUGBOARD ...]
Specify a list of byte pairings for the plugboard. ex;
10:25 50:77 102:33
--rotors ROTORS [ROTORS ...], -ro ROTORS [ROTORS ...]
Specify a list of rotors in the following format:
SHORTNAME[:SETTING] ex; byte1:52
--reflector REFLECTOR, -rf REFLECTOR
Specify a reflector by its shortname.
--state STATE, -s STATE
Path for the state file (reading or writing). States
can be used in lieu of manually specifying rotors and
reflectors every time.
--state-create, -sc Take the plugboard, rotor, and reflector args and save
them to the state file (and then exit).
--state-update, -su After processing, save the changed rotor state back to
the state file. This allows for a continuous rotor
progression over multiple program invocations. THERE
IS NO ROLLBACK, SO BACK UP THE STATE.
--state-print, -sp Print the state information to stdout and then exit.
--state-seed STATE_SEED, -ss STATE_SEED
String seed for to create a randomly generated state.
--state-seed-file STATE_SEED_FILE, -ssf STATE_SEED_FILE
File to use as seed for a randomly generated state.
--input INPUT, -i INPUT
Input a string via this command line argument.
--input-std, -is Read data from stdin pipe.
--input-path INPUT_PATH, -ip INPUT_PATH
Open and read data from file path.
--output-std, -os Write output to the stdout pipe.
--output-path OUTPUT_PATH, -op OUTPUT_PATH
Write output to the specified file path.
--chunk-size CHUNK_SIZE, -c CHUNK_SIZE
Chunk size for reading and writing data.
--benchmark, -b Benchmark the processing time (prints results to
stderr).
--progress, -p Show the progress meter; written to stderr.