annotate docs/index.rst @ 58:902f14d7e032

Added docs for the keygen sub-command.
author Brian Neal <bgneal@gmail.com>
date Tue, 09 Jul 2013 21:34:48 -0500
parents 859dc6624ab7
children 6acd17898381
rev   line source
bgneal@51 1 .. m209 documentation master file, created by
bgneal@51 2 sphinx-quickstart on Thu Jul 4 18:12:07 2013.
bgneal@51 3 You can adapt this file completely to your liking, but it should at least
bgneal@51 4 contain the root `toctree` directive.
bgneal@51 5
bgneal@51 6 Welcome to m209's documentation!
bgneal@51 7 ================================
bgneal@51 8
bgneal@52 9 :Author: Brian Neal <bgneal@gmail.com>
bgneal@52 10 :Version: |release|
bgneal@52 11 :Date: |today|
bgneal@52 12 :Home Page: https://bitbucket.org/bgneal/m209/
bgneal@52 13 :License: MIT License (see LICENSE.txt)
bgneal@52 14 :Documentation: http://m209.readthedocs.org/
bgneal@52 15 :Support: https://bitbucket.org/bgneal/m209/issues
bgneal@52 16
bgneal@52 17 Introduction
bgneal@52 18 ------------
bgneal@52 19
bgneal@57 20 The `M-209`_ is a mechanical cipher machine used by the US military during
bgneal@57 21 World War II and up to the Korean War. The M-209 is also known as the CSP-1500
bgneal@57 22 by the US Navy. The M-209 is an example of a Hagelin device, a family of
bgneal@57 23 mechanical cipher machines created by Swedish inventor `Boris Hagelin`_, where
bgneal@57 24 it is known as the C-38.
bgneal@57 25
bgneal@52 26 ``m209`` is a complete `M-209`_ simulation library and command-line application
bgneal@52 27 written in Python 3. ``m209`` is historically accurate, meaning that it can
bgneal@52 28 exchange messages with an actual M-209 cipher machine.
bgneal@52 29
bgneal@52 30 It is hoped that this library will be useful to M-209 enthusiasts, historians,
bgneal@52 31 and students interested in cryptography.
bgneal@52 32
bgneal@52 33 ``m209`` strives to be Pythonic, easy to use, and comes with both unit tests
bgneal@52 34 and documentation. ``m209`` is a library for building applications for
bgneal@52 35 encrypting and decrypting M-209 messages. ``m209`` also ships with a simple
bgneal@52 36 command-line application that can encrypt & decrypt messages for scripting and
bgneal@52 37 experimentation.
bgneal@52 38
bgneal@56 39 Documentation
bgneal@56 40 -------------
bgneal@52 41
bgneal@56 42 Contents:
bgneal@54 43
bgneal@56 44 .. toctree::
bgneal@56 45 tutorial
bgneal@57 46 commandline
bgneal@57 47 library
bgneal@56 48 :maxdepth: 2
bgneal@55 49
bgneal@55 50
bgneal@52 51 Requirements
bgneal@52 52 ------------
bgneal@52 53
bgneal@52 54 ``m209`` is written in Python_, specifically Python 3.3. It has no other
bgneal@52 55 requirements or dependencies.
bgneal@52 56
bgneal@52 57 Installation
bgneal@52 58 ------------
bgneal@52 59
bgneal@52 60 ``m209`` is available on the `Python Package Index`_ (PyPI). You can install it
bgneal@52 61 using pip_::
bgneal@52 62
bgneal@52 63 $ pip install m209 # install
bgneal@52 64 $ pip install --upgrade m209 # upgrade
bgneal@52 65
bgneal@55 66 You may also download a tarball or .zip file of the latest code by visiting the
bgneal@55 67 Downloads tab on the `m209 Bitbucket page`_. Alternatively if you use
bgneal@52 68 Mercurial_, you can clone the repository with the following command::
bgneal@52 69
bgneal@52 70 $ hg clone https://bitbucket.org/bgneal/m209
bgneal@52 71
bgneal@52 72 If you did not use pip, you can install with this command::
bgneal@52 73
bgneal@52 74 $ python setup.py install
bgneal@52 75
bgneal@52 76 Support & Source
bgneal@52 77 ----------------
bgneal@52 78
bgneal@52 79 All support takes place at the `m209 Bitbucket page`_. Please enter any
bgneal@52 80 feature requests or bugs into the `issue tracker`_.
bgneal@52 81
bgneal@57 82 References
bgneal@57 83 ----------
bgneal@57 84
bgneal@57 85 All of the resources listed below were useful to me in the creation of the
bgneal@57 86 ``m209`` library. In particular, I want to thank Mark J. Blair for his detailed
bgneal@57 87 explanations of the M-209's operation and procedures. The official training
bgneal@57 88 film was also highly instructive.
bgneal@57 89
bgneal@57 90 #. `M-209 at Wikipedia <http://en.wikipedia.org/wiki/M-209>`_
bgneal@57 91 #. `Mark J. Blair's Converter M-209-B <http://www.nf6x.net/2009/02/converter-m-209-b/>`_
bgneal@57 92 #. `1942 M-209 Manual <http://maritime.org/tech/csp1500inst.htm>`_
bgneal@57 93 #. `1944 M-209 Manual scan <http://www.ilord.com/m209manual.html>`_
bgneal@57 94 #. `Official M-209 Training Film <http://www.youtube.com/playlist?list=PLCPgncK_sTnEny2-uoTV-1_GC72zo-vKq>`_ - This is a 4 video YouTube playlist of an actual 1940's era US War Department training film. Demonstrates the M-209 and operational procedures. Very interesting!
bgneal@57 95 #. `Transcript of Training Film <http://www.ilord.com/m209-training.html>`_ -
bgneal@57 96 Transcript of the above film.
bgneal@57 97 #. `Mark J. Blair's M-209 Cipher Machine Group <http://www.nf6x.net/groups/m209group/>`_ -
bgneal@57 98 Informal club for M-209 enthusiasts. Includes detailed explanations of the
bgneal@57 99 device and how to use it. Very useful.
bgneal@57 100 #. `Dirk Rijmenants' M-209 Simulator <http://users.telenet.be/d.rijmenants/en/m209sim.htm>`_ -
bgneal@57 101 Graphical M-209 simulator
bgneal@57 102 #. `Mark J. Blair's Hagelin project suite at GitHub <https://github.com/NF6X/hagelin>`_
bgneal@57 103 - M-209 simulator written in C++
bgneal@57 104 #. `Jean-François BOUCHAUDY's Crypto Pages <http://www.jfbouch.fr/crypto/>`_
bgneal@57 105 - Includes another Python-based M-209 simulator and a M-209 challenge. In French.
bgneal@57 106 #. `The C-38 / M-209 Cipher Machine <http://hem.passagen.se/tan01/c38.html>`_
bgneal@57 107 - Another M-209 page. This one has useful info on creating key lists and a C-38 simulator written in C.
bgneal@57 108
bgneal@51 109 Indices and tables
bgneal@51 110 ==================
bgneal@51 111
bgneal@51 112 * :ref:`genindex`
bgneal@51 113 * :ref:`modindex`
bgneal@51 114 * :ref:`search`
bgneal@51 115
bgneal@52 116
bgneal@52 117 .. _M-209: http://en.wikipedia.org/wiki/M-209
bgneal@57 118 .. _Boris Hagelin: http://en.wikipedia.org/wiki/Boris_Hagelin
bgneal@52 119 .. _Python: http://www.python.org
bgneal@52 120 .. _Python Package Index: http://pypi.python.org/pypi/m209/
bgneal@52 121 .. _m209 Bitbucket page: https://bitbucket.org/bgneal/m209
bgneal@52 122 .. _pip: http://www.pip-installer.org
bgneal@52 123 .. _Mercurial: http://mercurial.selenic.com/
bgneal@52 124 .. _issue tracker: https://bitbucket.org/bgneal/m209/issues