crypto-enigma: An Enigma machine simulator with display.

[ bsd3, cryptography, education, library, program ] [ Propose Tags ]

The crypto-enigma package is an Enigma machine simulator with rich display and machine state details.

Currently support is only provided for the machine models in most widespread general use during the war years: the I, M3, and M4.

For basic functionality, including some introspection of machine state and the mappings performed, simply

> import Crypto.Enigma

For richer display functionality additionally

> import Crypto.Enigma.Display

(Note that this package assumes support for combining Unicode, without which some output may appear garbled.)

[Skip to Readme]
Versions [RSS] [faq],,,,,,,,,,,,,,,,,,,,,,,,,, (info)
Change log
Dependencies base (>= && <4.9), containers (>=, MissingH (>=, split (>=0.2.2) [details]
License BSD-3-Clause
Copyright (c) 2014-2015 Roy Levien
Author Roy Levien
Category Cryptography, Education
Home page
Bug tracker
Source repo head: git clone git:// -b develop
this: git clone git:// -b hackage(tag
Uploaded by Orome at 2015-10-20T15:59:56Z
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 13481 total (112 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2015-10-20 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees


Readme for crypto-enigma-

[back to package description]


Haskell Programming Language Hackage Hackage Dependencies BSD3 License Build Status

An Enigma machine simulator with state and encoding display.

Currently support is only provided for those machine models in most widespread general use during the war years: the I, M3, and M4.

This is adapted, as an exerecise in learning Haskell, from an earlier learning project written in Mathematica. It is my first Haskell program.

Note that the correct display of some characters used to represent components (thin Naval rotors) assumes support for Unicode, while some aspects of the display of machine state depend on support for combining Unicode. This is a known limitation that will be addressed in a future release.

Full documentation — for the latest release version — is available on Hackage.

For other Haskell Enigma machines see:

Development status

Build Status

I'm currently learning and experimenting with some Haskell language features and can't promise the development version will work. More detail about planned releases and activities can be found the list of scheduled milestones and in the list of open issues.