Welcome to m209’s documentation!¶
- Author:
Brian Neal <bgneal@gmail.com>
- Version:
1.0.0
- Date:
Jan 25, 2026
- Home Page:
- License:
MIT License (see LICENSE.txt)
- Documentation:
- Support:
Introduction¶
The M-209 is a mechanical cipher machine used by the US military during World War II and up to the Korean War. The M-209 is also known as the CSP-1500 by the US Navy. The M-209 is an example of a Hagelin device, a family of mechanical cipher machines created by Swedish inventor Boris Hagelin, where it is known as the C-38.
m209 is a complete M-209 simulation library and command-line application
written in Python 3. m209 is historically accurate, meaning that it can
exchange messages with an actual M-209 cipher machine.
It is hoped that this library will be useful to M-209 enthusiasts, historians, and students interested in cryptography.
m209 strives to be Pythonic, easy to use, and comes with both unit tests
and documentation. m209 is a library for building applications for
encrypting and decrypting M-209 messages. m209 also ships with a simple
command-line application that can encrypt & decrypt messages for scripting and
experimentation.
Documentation¶
Contents:
Requirements¶
m209 is written in Python 3, specifically Python 3.3. At this time it will
not run on Python 2.x.
m209 has no other requirements or dependencies.
Installation¶
m209 is available on the Python Package Index (PyPI).
You can install it using pip:
$ python3 -m pip install m209
If you aren’t familiar with installing Python packages, please see, for example, the Python Packaging Installing Packages tutorial.
The latest version of m209 can always be found at the m209 GitHub page.
To run the unit tests:
$ cd where-you-extracted-m209
$ python -m unittest discover -b
Support & Source¶
All support takes place at the m209 GitHub page. Please enter any feature requests or bugs into the issue tracker.
References¶
All of the resources listed below were useful to me in the creation of the
m209 library. In particular, I want to thank Mark J. Blair for his detailed
explanations of the M-209’s operation and procedures. The official training
film was also highly instructive.
Official M-209 Training Film - 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!
Transcript of Training Film - Transcript of the above film.
Dirk Rijmenants’ M-209 Simulator - Graphical M-209 simulator
Mark J. Blair’s Hagelin project suite at GitHub - M-209 simulator written in C++
Jean-François Bouchaudy’s Crypto Pages - Includes another Python-based M-209 simulator and a M-209 challenge. In French.