{"id":19924540,"url":"https://github.com/artemis-beta/enigma","last_synced_at":"2025-05-03T07:31:36.043Z","repository":{"id":17712160,"uuid":"82494160","full_name":"artemis-beta/enigma","owner":"artemis-beta","description":"Emulator of the Enigma Encoding Machine","archived":false,"fork":false,"pushed_at":"2025-03-16T13:12:26.000Z","size":241,"stargazers_count":10,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T13:11:16.346Z","etag":null,"topics":["cipher","ciphers","encryption","enigma","machine"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artemis-beta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-19T22:28:07.000Z","updated_at":"2025-03-16T13:12:29.000Z","dependencies_parsed_at":"2023-10-05T01:42:19.009Z","dependency_job_id":"fec71094-909f-475f-8066-59aa5cd4be12","html_url":"https://github.com/artemis-beta/enigma","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemis-beta%2Fenigma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemis-beta%2Fenigma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemis-beta%2Fenigma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artemis-beta%2Fenigma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artemis-beta","download_url":"https://codeload.github.com/artemis-beta/enigma/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252156947,"owners_count":21703380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cipher","ciphers","encryption","enigma","machine"],"created_at":"2024-11-12T22:17:59.276Z","updated_at":"2025-05-03T07:31:36.034Z","avatar_url":"https://github.com/artemis-beta.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ENIGMA\n![python3.10](https://github.com/artemis-beta/enigma/workflows/python3.10/badge.svg) ![python3.11](https://github.com/artemis-beta/enigma/workflows/python3.11/badge.svg) ![python3.12](https://github.com/artemis-beta/enigma/actions/workflows/enigma_py312.yml/badge.svg)![python3.13](https://github.com/artemis-beta/enigma/workflows/python3.13/badge.svg) \n\n[![CodeFactor](https://www.codefactor.io/repository/github/artemis-beta/enigma/badge)](https://www.codefactor.io/repository/github/artemis-beta/enigma)![GitHub](https://img.shields.io/github/license/artemis-beta/enigma) [![codecov](https://codecov.io/gh/artemis-beta/enigma/branch/master/graph/badge.svg?token=9D087TSZEA)](https://codecov.io/gh/artemis-beta/enigma) \n\nThis is a small application written in python which simulates both the M3 and M4, 3 and 4 rotor variants of the Enigma machine which was utilised by German forces during WWII to encode information.\n\nIncluded are two example scripts which can be found in the `examples` folder, these demonstrate the two variants.\n\nFor the C++ version of this application visit [here](https://github.com/artemis-beta/enigma-cpp).\n\n## Installation\n\nTo install simply run:\n```bash\npip install .\n```\nwithin the repository directory.\n\n## Executable\nAfter installing the module the command `enigma` is available within the terminal and can be used to launch a demonstration application.\n\n## Custom Machine\nTo create a new instance of Enigma the default can be used which is an M3 instance with pre-selected rotor arrangement and reflector choice, or all settings can be chosen by the user. Note as with the machine itself, one of the 8 numbered rotor types may only be selected once:\n```python\nmy_rotor_list = [1,4,6,3]     # 3 or 4 of 1,2,3,4,5,6,7,8\nmy_reflector  = 'B'           # 'B' or 'C'\nmachine_type  = 'M4'          # 'M3' or 'M4' (should match rotor list)\ndebug_level   = 'ERROR'       # 'ERROR', 'INFO', 'DEBUG' (see python 'logging' module documentation)\n\nenigma = enigma.Enigma( rotor_list     = my_rotor_list ,\n                        user_reflector = my_reflector  ,\n                        enigma_type    = machine_type  ,\n                        debug          = debug_level)\n\nenigma.ringstellung('right', 2)  # Perform an internal wire rotation on the right rotor of 2 steps \n                                 # for M3 rotors are ['left', 'middle', 'right']\n                                 # for M4 rotors are ['left', 'middle left', 'middle right', 'right']\n\nenigma.set_key('NERO')\nenigma.type_phrase('NOBODYEXPECTSTHESPANISHINQUISITION')\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartemis-beta%2Fenigma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartemis-beta%2Fenigma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartemis-beta%2Fenigma/lists"}