Metadata-Version: 2.1
Name: bletchley
Version: 0.1.2
Summary: A collection of historical ciphers and cryptanalysis tools
Home-page: https://gitlab.com/manny_cyber_wizard/bletchley
Author: manny
Author-email: manny@cyber-wizard.com
License: UNKNOWN
Description: ![Pipeline](https://gitlab.com/manny_cyber_wizard/bletchley/badges/master/pipeline.svg) [![Ask Me Anything !](https://img.shields.io/badge/Ask%20me-anything-1abc9c.svg)](https://gitlab.com/manny_cyber_wizard/bletchley/issues/new) [![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://gitlab.com/manny_cyber_wizard/bletchley/blob/master/LICENSE) [![Awesome Badges](https://img.shields.io/badge/badges-awesome-green.svg)](https://github.com/Naereen/badges)
        
        [![forthebadge made-with-python](http://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)
        
        # About
        bletchley 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.
        
        If 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).
        
        # Ciphers
        
        ![Cipher Coverage](https://gitlab.com/manny_cyber_wizard/bletchley/-/jobs/artifacts/master/raw/bletchley/coverage.svg?job=test:ciphers)
        
        Supported ciphers can be found on our [wiki](https://gitlab.com/manny_cyber_wizard/bletchley/wikis/home#ciphers).
        
        ## Simple Example
        Ciphers can be accessed by adding bletchley to your Python path:
        ~~~~
        export PYTHONPATH=$PYTHONPATH:/path/to/bletchley
        ~~~~
        Then importing bletchley into your Python script:
        ~~~~
        from bletchley.ciphers import CaesarCipher
        ~~~~
        And creating an instance of the cipher:
        ~~~~
        my_cipher = CaesarCipher()
        ~~~~
        From here, you can encrypt and decrypt messages using the cipher:
        ~~~~
        my_message = "Hello World!
        cipher_text = my_cipher.encrypt(my_message)
        plain_text = my_cipher.decrypt(cipher_text)
        ~~~~
        
        ## Advanced Example
        All 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.
        
        Taking 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:
        ~~~~
        from bletchley.ciphers import VICCipher
        my_cipher = VICCipher()
        ~~~~
        Before we can encrypt/decrypt any message, a checkerboard is needed. We now have two options:
        1.  Create our own checkerboard
        2.  Let the VIC cipher generate a random checkerboard for us
        
        For now we will choose the easier of the two, and let the VIC cipher generate a checkerboard for us:
        ~~~~
        my_checkerboard = my_cipher.generate_checkerboard()
        my_message = "Hello World!
        cipher_text = my_cipher.encrypt(my_message, checkerboard)
        plain_text = my_cipher.decrypt(cipher_text, checkerboard)
        ~~~~
        The checkerboard, in this example, could be exported and saved for future use.
        
        # Cryptanalysis
        
        ![Cryptanalysis Coverage](https://gitlab.com/manny_cyber_wizard/bletchley/-/jobs/artifacts/master/raw/bletchley/coverage.svg?job=test:cryptanalysis)
        
        Supported cryptanalysis tools can be found on our [wiki](https://gitlab.com/manny_cyber_wizard/bletchley/wikis/home#cryptanalysis).
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Topic :: Security :: Cryptography
Classifier: Development Status :: 3 - Alpha
Description-Content-Type: text/markdown
