annotate docs/index.rst @ 71:854c5d361011

Documentation cleanup.
author Brian Neal <bgneal@gmail.com>
date Tue, 23 Jul 2013 20:18:05 -0500
parents 753974fc7619
children
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@69 45 :maxdepth: 2
bgneal@62 46
bgneal@56 47 tutorial
bgneal@57 48 commandline
bgneal@57 49 library
bgneal@55 50
bgneal@55 51
bgneal@52 52 Requirements
bgneal@52 53 ------------
bgneal@52 54
bgneal@71 55 ``m209`` is written in Python_ 3, specifically Python 3.3. At this time it will
bgneal@71 56 not run on Python 2.x.
bgneal@71 57
bgneal@71 58 ``m209`` has no other requirements or dependencies.
bgneal@52 59
bgneal@52 60 Installation
bgneal@52 61 ------------
bgneal@52 62
bgneal@70 63 ``m209`` is available on the `Python Package Index`_ (PyPI).
bgneal@70 64
bgneal@70 65 You can install it using pip_::
bgneal@52 66
bgneal@52 67 $ pip install m209 # install
bgneal@52 68 $ pip install --upgrade m209 # upgrade
bgneal@52 69
bgneal@71 70 You may also download an archive file of the latest code by visiting the `m209
bgneal@71 71 Bitbucket page`_. Alternatively if you use Mercurial_, you can clone the
bgneal@70 72 repository with the following command::
bgneal@52 73
bgneal@52 74 $ hg clone https://bitbucket.org/bgneal/m209
bgneal@52 75
bgneal@70 76 If you did not use pip (you downloaded or cloned the code yourself), you can
bgneal@70 77 install with::
bgneal@52 78
bgneal@70 79 $ cd where-you-extracted-m209
bgneal@52 80 $ python setup.py install
bgneal@52 81
bgneal@70 82 To run the unit tests::
bgneal@70 83
bgneal@70 84 $ cd where-you-extracted-m209
bgneal@70 85 $ python -m unittest discover -b
bgneal@70 86
bgneal@52 87 Support & Source
bgneal@52 88 ----------------
bgneal@52 89
bgneal@52 90 All support takes place at the `m209 Bitbucket page`_. Please enter any
bgneal@52 91 feature requests or bugs into the `issue tracker`_.
bgneal@52 92
bgneal@68 93 .. _references-label:
bgneal@68 94
bgneal@57 95 References
bgneal@57 96 ----------
bgneal@57 97
bgneal@57 98 All of the resources listed below were useful to me in the creation of the
bgneal@57 99 ``m209`` library. In particular, I want to thank Mark J. Blair for his detailed
bgneal@57 100 explanations of the M-209's operation and procedures. The official training
bgneal@57 101 film was also highly instructive.
bgneal@57 102
bgneal@57 103 #. `M-209 at Wikipedia <http://en.wikipedia.org/wiki/M-209>`_
bgneal@57 104 #. `Mark J. Blair's Converter M-209-B <http://www.nf6x.net/2009/02/converter-m-209-b/>`_
bgneal@57 105 #. `1942 M-209 Manual <http://maritime.org/tech/csp1500inst.htm>`_
bgneal@59 106 #. `1944 M-209 Manual <http://www.ilord.com/m209manual.html>`_
bgneal@57 107 #. `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 108 #. `Transcript of Training Film <http://www.ilord.com/m209-training.html>`_ -
bgneal@57 109 Transcript of the above film.
bgneal@57 110 #. `Mark J. Blair's M-209 Cipher Machine Group <http://www.nf6x.net/groups/m209group/>`_ -
bgneal@57 111 Informal club for M-209 enthusiasts. Includes detailed explanations of the
bgneal@57 112 device and how to use it. Very useful.
bgneal@57 113 #. `Dirk Rijmenants' M-209 Simulator <http://users.telenet.be/d.rijmenants/en/m209sim.htm>`_ -
bgneal@57 114 Graphical M-209 simulator
bgneal@57 115 #. `Mark J. Blair's Hagelin project suite at GitHub <https://github.com/NF6X/hagelin>`_
bgneal@57 116 - M-209 simulator written in C++
bgneal@66 117 #. `Jean-François Bouchaudy's Crypto Pages <http://www.jfbouch.fr/crypto/>`_
bgneal@57 118 - Includes another Python-based M-209 simulator and a M-209 challenge. In French.
bgneal@57 119 #. `The C-38 / M-209 Cipher Machine <http://hem.passagen.se/tan01/c38.html>`_
bgneal@57 120 - Another M-209 page. This one has useful info on creating key lists and a C-38 simulator written in C.
bgneal@57 121
bgneal@51 122 Indices and tables
bgneal@51 123 ==================
bgneal@51 124
bgneal@51 125 * :ref:`genindex`
bgneal@51 126 * :ref:`search`
bgneal@51 127
bgneal@52 128
bgneal@52 129 .. _M-209: http://en.wikipedia.org/wiki/M-209
bgneal@57 130 .. _Boris Hagelin: http://en.wikipedia.org/wiki/Boris_Hagelin
bgneal@52 131 .. _Python: http://www.python.org
bgneal@52 132 .. _Python Package Index: http://pypi.python.org/pypi/m209/
bgneal@52 133 .. _m209 Bitbucket page: https://bitbucket.org/bgneal/m209
bgneal@52 134 .. _pip: http://www.pip-installer.org
bgneal@52 135 .. _Mercurial: http://mercurial.selenic.com/
bgneal@52 136 .. _issue tracker: https://bitbucket.org/bgneal/m209/issues