Table of Contents
- Include Entry-wheel (ETW), reflectors (UKW), Extra-Wheel (ZW) and rotors from All Model of Enigma
- Creating and Saving custom-made ETW, UKW, ZW and Rotors
- An Enigma custom model that accepts any amount of rotors, and can choose whether or not to use ETW/UKW/ZW
- Allowing all Latin-based languages to use Enigma (English, German, French, Italian, Spanish, Greek, Russian)
- Compatibility with Chinese, Japanese, Korean and International-Auxilary-Languages
- Implement and succeed test cases to ensure correct functionality
- Transform spaghetti code into a more-attractive-type-of-pasta-code
Include Entry-wheel (ETW), reflectors (UKW), Extra-Wheel (ZW) and rotors from All Model of Enigma
Included models (incl. ETWs, UKWs and rotors):
- I
- M3
- M4
- G31/A865
- G312
- G260
- D
- K
- K (Swiss)
- K (Swiss, Airforce)
- R
- T
Missing models (Information about wiring etc. welcome!):
- KD - Implemented, will be included in next release
- Z - Enigma that is designed to en-/decrypt numbers. - Not enough information available
- A - Not enough information available
- B - Not enough information available
- C - Not enough information available
- H - Not enough information available
Creating and Saving custom-made ETW, UKW, ZW and Rotors
Might be included in future releases. We must figure out a way to store custom components properly.
An Enigma custom model that accepts any amount of rotors, and can choose whether or not to use ETW/UKW/ZW
Hardest part will be to design a flexible layout for the configuration. Also we have to solve the problem above.
Allowing all Latin-based languages to use Enigma (English, German, French, Italian, Spanish, Greek, Russian)
If they have <= 26 Symbols this should be relatively easy.
Compatibility with Chinese, Japanese, Korean and International-Auxilary-Languages
This might be a harder task, since the historical Enigma had only 26 contacts per rotor. This limits any (non-Latin-based) alphabet to 26 symbols. It may be possible to encode alphabets with more than 26 symbols by using multiple characters per symbol, but I think that would be too far from the original process of enigma's encryption. Implementing "bigger" wheels is problematic since there are no historical models. We would have to design our own, which is not very authentic.
Implement and succeed test cases to ensure correct functionality
Since there are frequent changes to the code, some automated tests that check for correct functionality and accurate encryption would be nice.
Transform spaghetti code into a more-attractive-type-of-pasta-code
Yeah... I'm working on that every single time after I added a bigger feature. Additional functions tend to muddle up the source code :/