{"id":33152958,"url":"https://github.com/aditisrinivas97/Crypto-Vinaigrette","last_synced_at":"2025-11-15T22:00:38.856Z","repository":{"id":67996716,"uuid":"126040611","full_name":"aditisrinivas97/Crypto-Vinaigrette","owner":"aditisrinivas97","description":"Quantum-resistent asymmetric key generation tool for digital signatures.","archived":false,"fork":false,"pushed_at":"2019-06-02T18:17:08.000Z","size":470,"stargazers_count":20,"open_issues_count":0,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-06-24T09:32:42.136Z","etag":null,"topics":["cryptography","digital-signature","key-generation","post-quantum-cryptography","python","rainbow-scheme","security-tools","uov"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aditisrinivas97.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}},"created_at":"2018-03-20T15:32:15.000Z","updated_at":"2024-04-04T16:58:02.000Z","dependencies_parsed_at":"2024-01-06T22:54:41.565Z","dependency_job_id":null,"html_url":"https://github.com/aditisrinivas97/Crypto-Vinaigrette","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aditisrinivas97/Crypto-Vinaigrette","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aditisrinivas97%2FCrypto-Vinaigrette","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aditisrinivas97%2FCrypto-Vinaigrette/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aditisrinivas97%2FCrypto-Vinaigrette/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aditisrinivas97%2FCrypto-Vinaigrette/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aditisrinivas97","download_url":"https://codeload.github.com/aditisrinivas97/Crypto-Vinaigrette/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aditisrinivas97%2FCrypto-Vinaigrette/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284628148,"owners_count":27037491,"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","status":"online","status_checked_at":"2025-11-15T02:00:06.050Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cryptography","digital-signature","key-generation","post-quantum-cryptography","python","rainbow-scheme","security-tools","uov"],"created_at":"2025-11-15T19:00:46.109Z","updated_at":"2025-11-15T22:00:38.842Z","avatar_url":"https://github.com/aditisrinivas97.png","language":"Python","funding_links":[],"categories":["Quantum and post-quantum cryptography","Frameworks and Libs"],"sub_categories":["Python"],"readme":"# Crypto-Vinaigrette\n[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)]()\n![Status](https://img.shields.io/badge/status-active-brightgreen.svg?style=flat)\n[![License](https://img.shields.io/badge/license-mit-brightgreen.svg?style=flat)](https://github.com/aditisrinivas97/Crypto-Vinaigrette/blob/master/LICENSE)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/Django.svg)\n\nA quantum resistent asymmetric key generation tool based on the rainbow scheme for digital signatures.\n\n## Why would you need this?\n\n![Auth Comic](https://github.com/aditisrinivas97/Crypto-Vinaigrette/blob/master/extras/identity.png)\n\nDigital 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. \u003cbr\u003e\n\nAs mentioned before, we employ the Generalised Unbalanced Oil and Vinegar scheme or the Rainbow scheme to achieve the same. \u003cbr\u003e\n\nYou can find the paper here : https://bit.ly/2vwckRw\n\n\n## Installing\n\nTo build and install cryptovinaigrette, run the following commands\n```\n$ git clone https://github.com/aditisrinivas97/Crypto-Vinaigrette\n$ cd Crypto-Vinaigrette\n$ python3 setup.py install\n```\n\nOr install the package using pip  (Pending..)\n\n```\n$ pip install cryptovinaigrette\n``` \n\n## Usage\n\n1. Creating a key-pair. \u003cbr\u003e\n\n    The keys generated are stored in the directory passed as parameter to generate_keys.\n\n    ```python\n    from cryptovinaigrette import cryptovinaigrette\n\n    # Initialise keygen object and generate keys\n    myKeyObject = cryptovinaigrette.rainbowKeygen(save=\"/path/to/dest/folder\")\n    ``` \n\n2. Signing a document. \u003cbr\u003e\n\n    Signing is done using the `Private Key`. Assuming the private key is named `cvPriv.pem` and the document to be signed is `testfile.txt`,\n    \n    ```python\n    signature = cryptovinaigrette.rainbowKeygen.sign('cvPriv.pem', 'test/testFile.txt')\n    ``` \n\n3. Verifying the digital signature. \u003cbr\u003e\n\n    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`,\n\n    ```python\n\n    # Case where signature is valid\n    check = cryptovinaigrette.rainbowKeygen.verify('cvPub.pub', signature, 'test/testFile.txt')\n\n    # Case where signature is invalid \n    check = cryptovinaigrette.rainbowKeygen.verify('cvPub.pub', signature, 'test/testFile2.txt')\n\n    if check == True :\n        print(\"Verified successfully!\")\n    else :\n        print(\"Signature does not match the file!\")\n    ``` \n\n## Example\n\n![Example](https://github.com/aditisrinivas97/Crypto-Vinaigrette/blob/master/extras/example.png)\n\n## License\n\nThis project is made available under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\n\n## Primary Contributors\n\n| | |\n|:-:|:-:|\n|\u003cimg src=\"https://github.com/aditisrinivas97.png\" width=\"48\"\u003e  | [Aditi Srinivas](https://github.com/aditisrinivas97) |\n|\u003cimg src=\"https://github.com/avinashshenoy97.png\" width=\"48\"\u003e  | [Avinash Shenoy](https://github.com/avinashshenoy97) |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faditisrinivas97%2FCrypto-Vinaigrette","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faditisrinivas97%2FCrypto-Vinaigrette","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faditisrinivas97%2FCrypto-Vinaigrette/lists"}