Mercurial > public > enigma
changeset 41:3057f16caa43
Documented the key file format.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Mon, 04 Jun 2012 20:24:38 -0500 |
parents | e7b2424704c1 |
children | 360534b4781d |
files | enigma/docs/source/index.rst enigma/docs/source/keyfile.rst |
diffstat | 2 files changed, 37 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/enigma/docs/source/index.rst Mon Jun 04 20:05:51 2012 -0500 +++ b/enigma/docs/source/index.rst Mon Jun 04 20:24:38 2012 -0500 @@ -33,5 +33,4 @@ ================== * :ref:`genindex` -* :ref:`modindex` * :ref:`search`
--- a/enigma/docs/source/keyfile.rst Mon Jun 04 20:05:51 2012 -0500 +++ b/enigma/docs/source/keyfile.rst Mon Jun 04 20:24:38 2012 -0500 @@ -1,2 +1,39 @@ Key file format =============== + +Specifying key settings can become tedious and error-prone, so Py-Enigma allows +you to store key settings in a simulated monthly key sheet file. This is a +simple text file that you can create with your favorite text editor. Each line +of this file represents one days settings. Within the line, whitespace separates +each item. The columns for each line are as follows: + +#. The first column is the day number for the setting, similar to a real key + sheet. The day should be an integer in the range 1-31. +#. The next 3 or 4 columns are rotor names. See :ref:`rotor-table-label` for a + list of valid rotor names. +#. The next 3 or 4 columns are the ring settings for each rotor. These can be a + list of numbers (1-26) or letters (A-Z). +#. The next 10 columns are the plugboard settings. These can be a list of + 2-letter pairs (e.g. AB CD, etc.) or slash separated number pairs (e.g. 1/20 + 3/22). +#. The last column is the reflector name. See :ref:`reflector-table-label` for a + list of the valid reflector names. + +Please note the following about the file format: + +* Each line must have either 18 or 20 columns, depending on if you are + simulating a 3 or 4 rotor Enigma. +* It is possible to mix 3 and 4 rotor settings in the same file. +* You do not have to supply settings for every day in the month. +* Py-Enigma will simply scan the file from top to bottom until it finds the line + that corresponds to the day number it is looking for. Thus duplicate day + settings are allowed, but keep in mind the first line will be used. +* The file can contain blank lines. +* The file can contain comment lines. Comment lines begin with a ``#`` character + in the first column and extend to the end of the line. + +Example file:: + + # My sample settings file + 29 II IV V 1 16 10 AV BS CG DL FU HZ IN KM OW RX B + 30 Beta II IV I A A A V 1/20 2/12 4/6 7/10 8/13 14/23 15/16 17/25 18/26 22/24 B-Thin