{ "info": { "author": "manny", "author_email": "manny@cyber-wizard.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only", "Topic :: Security :: Cryptography" ], "description": "# About\nbletchley is a pure [Python](https://www.python.org/) cryptographic tool suite. It provides historical ciphers. In the future it will also provide cryptographic attacks (cryptanalysis) to use against these ciphers.\n\nIf you find an bug or have a feature you'd like to see, please raise an [issue](https://gitlab.com/manny_cyber_wizard/bletchley/issues/new).\n\nYou can get in touch with us via this [link](incoming+manny-cyber-wizard-bletchley-10487839-issue-@incoming.gitlab.com).\n\nThe latest version of Bletchley is available via our [GitLab repo](https://gitlab.com/manny_cyber_wizard/bletchley), [PyPi](https://pypi.org/project/bletchley/) or [Conda-forge](https://github.com/conda-forge/bletchley-feedstock).\n\n\n# Ciphers\n\nSupported ciphers can be found on our [wiki](https://gitlab.com/manny_cyber_wizard/bletchley/wikis/home#ciphers).\n\n## Simple Example\nCiphers can be accessed by adding bletchley to your Python path:\n~~~~\nexport PYTHONPATH=$PYTHONPATH:/path/to/bletchley\n~~~~\nThen importing bletchley into your Python script:\n~~~~\nfrom bletchley.ciphers.rot13_cipher import ROT13Cipher\n~~~~\nAnd creating an instance of the cipher:\n~~~~\nmy_cipher = ROT13Cipher()\n~~~~\nFrom here, you can encrypt and decrypt messages using the cipher:\n~~~~\nmy_message = \"Hello World!\"\ncipher_text = my_cipher.encrypt(my_message)\nplain_text = my_cipher.decrypt(cipher_text)\n~~~~\n\n## Advanced Example\nAll ciphers implement the abstract class: Cipher. This means that all ciphers have encrypt and decrypt functions you can use. Note that some more complex ciphers (such as the [VIC Cipher](VIC-Cipher)) may have additional arguments when called. Where possible, these will be included with the cipher.\n\nTaking the VIC cipher as an example, another argument is needed to encrypt/decrypt messages. This is called a 'checkerboard'. We can create our cipher in the same way as we did for the Caeser cipher before:\n~~~~\nfrom bletchley.ciphers.vic_cipher import VICCipher\nmy_cipher = VICCipher()\n~~~~\nBefore we can encrypt/decrypt any message, a checkerboard is needed. We now have two options:\n1. Create our own checkerboard\n2. Let the VIC cipher generate a random checkerboard for us\n\nFor now we will choose the easier of the two, and let the VIC cipher generate a checkerboard for us:\n~~~~\nmy_checkerboard = my_cipher.generate_checkerboard()\nmy_message = \"Hello World!\"\ncipher_text = my_cipher.encrypt(my_message, my_checkerboard)\nplain_text = my_cipher.decrypt(cipher_text, my_checkerboard)\n~~~~\nThe checkerboard, in this example, could be exported and saved for future use.\n\n# Cryptanalysis\nSupported cryptanalysis tools can be found on our [wiki](https://gitlab.com/manny_cyber_wizard/bletchley/wikis/home#cryptanalysis).\n\n# Contributing\nTo help Bletchley's continued development, please consider contributing to the project (you can find our contribution guide [here](https://gitlab.com/manny_cyber_wizard/bletchley/blob/master/CONTRIBUTING.md)).", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/manny_cyber_wizard/bletchley", "keywords": "cryptography ciphers cryptanalysis historical", "license": "GPL version 3", "maintainer": "", "maintainer_email": "", "name": "bletchley", "package_url": "https://pypi.org/project/bletchley/", "platform": "", "project_url": "https://pypi.org/project/bletchley/", "project_urls": { "Bug Reports": "https://gitlab.com/manny_cyber_wizard/bletchley/issues", "Homepage": "https://gitlab.com/manny_cyber_wizard/bletchley", "Say Thanks!": "https://saythanks.io/to/MannyCyber", "Source": "https://gitlab.com/manny_cyber_wizard/bletchley" }, "release_url": "https://pypi.org/project/bletchley/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "A collection of historical ciphers and cryptanalysis tools", "version": "0.3.0" }, "last_serial": 5356049, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "6da747b122df24dad7fd549ccfb75e83", "sha256": "423c541085788365b2b9325fc6d18f6191d31affe31603205f86d92765f7d0bb" }, "downloads": -1, "filename": "bletchley-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6da747b122df24dad7fd549ccfb75e83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6363, "upload_time": "2019-05-20T15:38:18", "url": "https://files.pythonhosted.org/packages/45/ad/d3268e03ece5a7652fc289f6244e6ef56b816ff774edfb65f27032948c4f/bletchley-0.1.0.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "db1082f6abbfa8c43959bdfd6643349b", "sha256": "eb1dac0683f0a5bb90cfcf46dd0ec7a17a60d444699f5ed3b9fa57570a36a533" }, "downloads": -1, "filename": "bletchley-0.1.2.tar.gz", "has_sig": false, "md5_digest": "db1082f6abbfa8c43959bdfd6643349b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19668, "upload_time": "2019-05-20T16:00:28", "url": "https://files.pythonhosted.org/packages/52/92/ff2d5debe82d74c497ef3a3897d78609977f1033ab0b6436644bc5d30d9e/bletchley-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "9be6f1b7f202b5b781af39725342cc37", "sha256": "cd70e09d4dd65c0d46a3c5993eab0acdbce6400d97dada777ef9af915c33b6ba" }, "downloads": -1, "filename": "bletchley-0.1.3.tar.gz", "has_sig": false, "md5_digest": "9be6f1b7f202b5b781af39725342cc37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19669, "upload_time": "2019-05-21T08:02:45", "url": "https://files.pythonhosted.org/packages/5e/f8/5ae07b3606b2af65b9c42815e6301c7321ee6c509e6e93f2aaf3a394e31d/bletchley-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "50b887b6c0b0318b2c8804df2c4d5fb2", "sha256": "e34c2771403d8acdc7f9b9df20b64fbff3b47e97c22ef5ae071567cda6c38fa2" }, "downloads": -1, "filename": "bletchley-0.2.0.tar.gz", "has_sig": false, "md5_digest": "50b887b6c0b0318b2c8804df2c4d5fb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23660, "upload_time": "2019-05-24T09:01:35", "url": "https://files.pythonhosted.org/packages/5b/0a/7b0d0838e841e243810d865168b4dcf5dbe729ac51cedd46e79bc5893eab/bletchley-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "539c012e79fe03ee3672c8dbe5c2e9ed", "sha256": "eb002283af4a514c2f354fe72136bec6821ddfb85ee6c4dc75d3a105b1361ff1" }, "downloads": -1, "filename": "bletchley-0.3.0.tar.gz", "has_sig": false, "md5_digest": "539c012e79fe03ee3672c8dbe5c2e9ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24128, "upload_time": "2019-06-04T07:35:47", "url": "https://files.pythonhosted.org/packages/3a/b8/2e91134af92a822a5a7184feef67f9795a775771d698c1e2d529807b9fea/bletchley-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "539c012e79fe03ee3672c8dbe5c2e9ed", "sha256": "eb002283af4a514c2f354fe72136bec6821ddfb85ee6c4dc75d3a105b1361ff1" }, "downloads": -1, "filename": "bletchley-0.3.0.tar.gz", "has_sig": false, "md5_digest": "539c012e79fe03ee3672c8dbe5c2e9ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24128, "upload_time": "2019-06-04T07:35:47", "url": "https://files.pythonhosted.org/packages/3a/b8/2e91134af92a822a5a7184feef67f9795a775771d698c1e2d529807b9fea/bletchley-0.3.0.tar.gz" } ] }