Skip to content
Quantum-resistent asymmetric key generation tool for digital signatures.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cryptovinaigrette
extras
test
.gitignore
LICENSE
MANIFEST.in
README.md
requirements.txt
setup.py

README.md

Crypto-Vinaigrette

Open Source Love Status License PyPI - Python Version

A quantum resistent asymmetric key generation tool based on the rainbow scheme for digital signatures.

Why would you need this?

Auth Comic

Digital signatures are a common way of authenticating a sender by verifying a piece of information attached to the document. In our case, the attached piece of information is a sequence of numbers generated using the document which is to be signed.

As mentioned before, we employ the Generalised Unbalanced Oil and Vinegar scheme or the Rainbow scheme to achieve the same.

You can find the paper here : https://bit.ly/2vwckRw

Installing

Install the package using pip (Pending..)

$ pip install cryptovinaigrette

Usage

  1. Creating a key-pair.

    The keys generated are stored in the directory passed as parameter to generate_keys.

    from cryptovinaigrette import cryptovinaigrette
    
    # Initialise keygen object and generate keys
    myKeyObject = cryptovinaigrette.rainbowKeygen(save="/path/to/dest/folder")
  2. Signing a document.

    Signing is done using the Private Key. Assuming the private key is named cvPriv.pem and the document to be signed is testfile.txt,

    signature = cryptovinaigrette.rainbowKeygen.sign('cvPriv.pem', 'test/testFile.txt')
  3. Verifying the digital signature.

    Verification is done using the Public Key. Assuming the public key is named cvPub.pub and the document whose signature is to be verified is testfile.txt,

    # Case where signature is valid
    check = cryptovinaigrette.rainbowKeygen.verify('cvPub.pub', signature, 'test/testFile.txt')
    
    # Case where signature is invalid 
    check = cryptovinaigrette.rainbowKeygen.verify('cvPub.pub', signature, 'test/testFile2.txt')
    
    if check == True :
        print("Verified successfully!")
    else :
        print("Signature does not match the file!")

Example

Example

License

This project is made available under the MIT License.

Primary Contributors

Aditi Srinivas
Avinash Shenoy
You can’t perform that action at this time.