{ "info": { "author": "Ignacio Navarro", "author_email": "nachonavarroasv@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.6" ], "description": "========================================\nGabes: Garbled Circuits in Python\n========================================\n\n.. image:: https://travis-ci.org/nachonavarro/gabes.svg?branch=master\n :target: https://travis-ci.org/nachonavarro/gabes\n\n.. image:: https://img.shields.io/badge/License-MIT-yellow.svg\n :target: https://opensource.org/licenses/MIT\n\nIntroduction\n-----------------------------\n\nGarbled Circuits allow two distrusting parties\nto compute a joint function while keeping their inputs private. More precisely,\nit allows Alice with input `x` and Bob with input `y` to compute a function\n`f(x, y)` without Alice ever knowing `y` and without Bob knowing `x`. The way\nit does so is by first translating `f` to a boolean circuit from which it will\ncleverly obfuscate or **garble** the circuit to allow the computation of `f`\nwhile keeping the inputs private.\n\nThe classical example is that of two millionaires who wish to find out who is\nricher without revealing their wealth. In that case, `f` becomes the \">\" (greater\nthan) function, and `x` and `y` are their wealth. \n\n**Gabes** implements garbled circuits in Python. The application runs as a command\nline interface but the functions required to run garbled circuits can be used without\nthe command line (see gabes).\n\nInstallation\n------------------\n\nAt the command line either via pip::\n\n $ pip install gabes\n\nOr, if you have virtualenvwrapper installed::\n\n $ mkvirtualenv gabes\n $ pip install gabes\n\nUsage\n--------\n\nEach party will run their own instance of the program on their computer as a CLI app. \nThe garbler will provide the IP and port number to establish the connection with the\nevaluator.\n\n.. note:: Make sure to open the port when connecting between two different networks.\n\n**Garbler's Side**::\n\n gabes -g -grr3 -c Desktop/my-circuit.circuit -a localhost:5000\n\n**Evaluator's Side**::\n\n gabes -e -grr3 -a localhost:5000\n\nFlags\n----------\n\n.. code-block::\n\n\tusage: gabes [-h] [-g] [-e] [-b bits] [-i identifier [identifier ...]]\n\t [-c file] -a ip:port [-cl] [-pp] [-grr3] [-free] [-grr2]\n\t [-fle] [-half]\n\n\tProgram to garble and evaluate a circuit.\n\n\toptional arguments:\n\t -h, --help show this help message and exit\n\t -g, --garbler Set this flag to become the garbler\n\t -e, --evaluator Set this flag to become the evaluator\n\t -b bits, --bits bits Include your private input bitstring to the circuit\n\t (e.g. 001011)\n\t -i identifier [identifier ...], --identifiers identifier [identifier ...]\n\t Indicate which input wires you supply to the circuit\n\t (e.g. -i A C D)\n\t -c file, --circuit file\n\t Path of the file representing the circuit. Only the\n\t garbler needs to supply the file\n\t -a ip:port, --address ip:port\n\t IP address followed by the port number\n\t -cl, --classical Set this flag for classical garbled circuits\n\t -pp, --point-and-permute\n\t Set this flag to include point-and-permute\n\t -grr3, --grr3 Set this flag for GRR3 garbled circuits\n\t -free, --free-xor Set this flag for free-xor garbled circuits\n\t -fle, --flexor Set this flag for flexor garbled circuits\n\t -half, --half-gates Set this flag for half gates garbled circuits\n\nDocumentation\n------------------\n\nAll the documentation can be found in https://gabes.readthedocs.io/en/latest/\n\n\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nachonavarro/gabes", "keywords": "gabes", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "gabes", "package_url": "https://pypi.org/project/gabes/", "platform": "", "project_url": "https://pypi.org/project/gabes/", "project_urls": { "Homepage": "https://github.com/nachonavarro/gabes" }, "release_url": "https://pypi.org/project/gabes/0.1.5/", "requires_dist": null, "requires_python": "", "summary": "A pythonic library to use Garbled Circuits", "version": "0.1.5" }, "last_serial": 3992411, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "707b4f36fc3d5bd4d0541dfa161f09c5", "sha256": "abb679f51592b116f1da4449277816f4213f8c66376a4aac1fb561766c3b364b" }, "downloads": -1, "filename": "gabes-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "707b4f36fc3d5bd4d0541dfa161f09c5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 25684, "upload_time": "2018-06-22T10:17:09", "url": "https://files.pythonhosted.org/packages/d3/8b/069d4303fc7d80fdeeb39c1407ef1ea0d64c879f2556787f5ca13d3c618f/gabes-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff5db7fdec42829f369efb4c0ad3f85b", "sha256": "d9c1fddd43f75d29a29c4c7f4387d0819502b833b49f27250d289643eb9fdd8c" }, "downloads": -1, "filename": "gabes-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ff5db7fdec42829f369efb4c0ad3f85b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22131, "upload_time": "2018-06-22T10:17:06", "url": "https://files.pythonhosted.org/packages/d4/02/69941d6f2110b309d6b00aad885801b12b78c4f0d92d30119df734065283/gabes-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "cd740529c42e84701457eac6d64b26b6", "sha256": "85fbf76e802efb2b296166ddcecae103a340c04cc9fbd3a14cb6a8333fafe9ac" }, "downloads": -1, "filename": "gabes-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd740529c42e84701457eac6d64b26b6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 25901, "upload_time": "2018-06-22T10:31:34", "url": "https://files.pythonhosted.org/packages/09/71/10c6f8132116d535aba72128053efc9a6c5c65681ae8fd09f8fb2a5fad01/gabes-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2551b532ced56831093474f57c34e105", "sha256": "367f561c388bca8fb287e4efe6e49f207478bcac8d429e5abf66142a4d5fcbdd" }, "downloads": -1, "filename": "gabes-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2551b532ced56831093474f57c34e105", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22206, "upload_time": "2018-06-22T10:31:32", "url": "https://files.pythonhosted.org/packages/87/57/803bcb77dcbb3e40e88f57d446730017bc16c651adbfaa29610c872091ff/gabes-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7a28a85e0659c770cc08e05df190758f", "sha256": "f8203784a943c7673a58beedef5e041bd30f46ee3846b9cee157afc37c2f5f05" }, "downloads": -1, "filename": "gabes-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7a28a85e0659c770cc08e05df190758f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 25900, "upload_time": "2018-06-22T10:34:07", "url": "https://files.pythonhosted.org/packages/dd/9d/88dfc3ba38775f984896629a9f2eaeae70da29b8bfd150f3c967b8e870e5/gabes-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "528c2bdb875f6ad69b87da1f380b7416", "sha256": "7fe8cc40c61def2deafe480b629417ea23275090643858c34b7f5594d9b2e278" }, "downloads": -1, "filename": "gabes-0.1.2.tar.gz", "has_sig": false, "md5_digest": "528c2bdb875f6ad69b87da1f380b7416", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22210, "upload_time": "2018-06-22T10:34:05", "url": "https://files.pythonhosted.org/packages/0a/94/b76023d0fc03ec4ac7063fe857e3913e13643a82e33af89c92f6570e1fe9/gabes-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "696a6474ada76c35f4127beb2e3f20d7", "sha256": "b0a25ce3b5caf67c540934a346f9763a5ea7b165835671917036a12e7ff8c98a" }, "downloads": -1, "filename": "gabes-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "696a6474ada76c35f4127beb2e3f20d7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 25874, "upload_time": "2018-06-22T10:37:34", "url": "https://files.pythonhosted.org/packages/fe/85/31d7e7ffcdaced9e7fbf18bd7a0b9ca163de537cfaa2ef96ab19a46d5df3/gabes-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54e5f3de0d7c738d48032cc38180083f", "sha256": "e49c813682deef71df58280d362e20f3970aaa4b961a5526707e078f3636c881" }, "downloads": -1, "filename": "gabes-0.1.3.tar.gz", "has_sig": false, "md5_digest": "54e5f3de0d7c738d48032cc38180083f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22196, "upload_time": "2018-06-22T10:37:32", "url": "https://files.pythonhosted.org/packages/d7/fe/43934b3ebc81cf5003b91c6896fa6f3f079eef0e0cfe5d9116ab8aa72930/gabes-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "e32d4795aee5d3b9c80c3ae580edb123", "sha256": "4aeee3783ecb448f8fccc1ed4159f460444a0d0d56d2d542d7e43dc7b40bd68f" }, "downloads": -1, "filename": "gabes-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e32d4795aee5d3b9c80c3ae580edb123", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 25890, "upload_time": "2018-06-23T07:11:01", "url": "https://files.pythonhosted.org/packages/14/2b/0ecf0f91805f9b51a7ec600325250a13d319789906251854e1375063fce6/gabes-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8faabe6ab653e63d541979993286e7e5", "sha256": "1adbbb44af3a09de8be469995059184668793a7ea8293eb92770135bfcc949dd" }, "downloads": -1, "filename": "gabes-0.1.4.tar.gz", "has_sig": false, "md5_digest": "8faabe6ab653e63d541979993286e7e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22210, "upload_time": "2018-06-23T07:10:59", "url": "https://files.pythonhosted.org/packages/44/dc/7f7b757c7d136e2a38efe446a5fb1fc4938619cb2db4f63c020c4bd518a2/gabes-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "cb3e17c0e34f8d9b48a9943762223a96", "sha256": "81660c43ecec7d37612b94275aa3e7786c924ab3223e76978a611af7d1936033" }, "downloads": -1, "filename": "gabes-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb3e17c0e34f8d9b48a9943762223a96", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 23496, "upload_time": "2018-06-23T07:27:28", "url": "https://files.pythonhosted.org/packages/21/8b/cb6432a39350267e43106729598bf79b3281f085a86fca846c749f114af5/gabes-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "19cdf5d9d3b85048a96d78ed7eaba32e", "sha256": "c32a917b8060f0556ff597f882af0523a6b6b93ef048247c72a73ee6c7160d06" }, "downloads": -1, "filename": "gabes-0.1.5.tar.gz", "has_sig": false, "md5_digest": "19cdf5d9d3b85048a96d78ed7eaba32e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22176, "upload_time": "2018-06-23T07:27:25", "url": "https://files.pythonhosted.org/packages/82/52/1cce07cd2bc2c5888314086489a70e213327bf6236acf74635305c616873/gabes-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cb3e17c0e34f8d9b48a9943762223a96", "sha256": "81660c43ecec7d37612b94275aa3e7786c924ab3223e76978a611af7d1936033" }, "downloads": -1, "filename": "gabes-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb3e17c0e34f8d9b48a9943762223a96", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 23496, "upload_time": "2018-06-23T07:27:28", "url": "https://files.pythonhosted.org/packages/21/8b/cb6432a39350267e43106729598bf79b3281f085a86fca846c749f114af5/gabes-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "19cdf5d9d3b85048a96d78ed7eaba32e", "sha256": "c32a917b8060f0556ff597f882af0523a6b6b93ef048247c72a73ee6c7160d06" }, "downloads": -1, "filename": "gabes-0.1.5.tar.gz", "has_sig": false, "md5_digest": "19cdf5d9d3b85048a96d78ed7eaba32e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22176, "upload_time": "2018-06-23T07:27:25", "url": "https://files.pythonhosted.org/packages/82/52/1cce07cd2bc2c5888314086489a70e213327bf6236acf74635305c616873/gabes-0.1.5.tar.gz" } ] }