{ "info": { "author": "Alberto Sonnino", "author_email": "alberto.sonnino@ucl.ac.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Topic :: Security :: Cryptography" ], "description": "# Coconut\n\n[![license](https://img.shields.io/badge/license-apache2-brightgreen.svg)](https://github.com/asonnino/coconut/blob/master/LICENSE) \n[![Build Status](https://travis-ci.org/asonnino/coconut.svg?branch=master)](https://travis-ci.org/asonnino/coconut)\n[![Documentation Status](https://readthedocs.org/projects/coconut-lib/badge/?version=latest)](http://coconut-lib.readthedocs.io/en/latest/?badge=latest)\n\n**Coconut** is a novel selective disclosure credential scheme supporting distributed threshold issuance, public and private attributes, re-randomization, and multiple unlinkable selective attribute revelations. Coconut integrates with blockchains to ensure confidentiality, authenticity and availability even when a subset of credential issuing authorities are malicious or offline. Coconut uses short and computationally efficient credentials, and our [evaluation](https://github.com/asonnino/coconut-timing) shows that most Coconut cryptographic primitives take just a few milliseconds on average, with verification taking the longest time (10 milliseconds). We implement and evaluate a generic Coconut smart contract library for [Chainspace](https://github.com/asonnino/coconut-chainspace) and [Ethereum](https://github.com/asonnino/coconut-ethereum).\n\nA link to the full paper is available at the following address: [https://arxiv.org/abs/1802.07344](https://arxiv.org/abs/1802.07344)\n\n\n## Pre-requisites\n**Coconut** is built on top of [petlib](https://github.com/gdanezis/petlib) and [bplib](https://github.com/gdanezis/bplib), make sure to follow [these instructions](https://github.com/gdanezis/petlib#pre-requisites) to install all the pre-requisites.\n\n\n## Install\nIf you have `pip` installed, you can install **Coconut** with the following command:\n```\n$ pip install coconut-lib\n```\notherwise, you can build it manually as below:\n```\n$ git clone https://github.com/asonnino/coconut\n$ cd coconut\n$ pip install -e .\n```\n\n\n## Test\nTests can be run as follows:\n```\n$ pytest -v --cov=coconut tests/\n```\nor simply using tox:\n```\n$ tox\n```\n\n## License\n[The Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.org/project/coconut-lib", "keywords": "anonymous-credentials threshold-cryptography blockchains distributed-ledgers", "license": "", "maintainer": "", "maintainer_email": "", "name": "coconut-lib", "package_url": "https://pypi.org/project/coconut-lib/", "platform": "", "project_url": "https://pypi.org/project/coconut-lib/", "project_urls": { "Bug Reports": "https://github.com/asonnino/coconut", "Funding": "https://www.decodeproject.eu", "Homepage": "https://pypi.org/project/coconut-lib", "Paper": "https://arxiv.org/abs/1802.07344", "Source": "https://github.com/asonnino/coconut" }, "release_url": "https://pypi.org/project/coconut-lib/1.3.1/", "requires_dist": [ "petlib", "bplib" ], "requires_python": "", "summary": "Threshold Issuance Selective Disclosure Credentials.", "version": "1.3.1" }, "last_serial": 4563057, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c27cbe40b17127dfc2e5e0b5422e9c41", "sha256": "c04ce6f20c51030e4a89577ec9bbff3bb638803e3a5b3b1b0ec28e75c0be34aa" }, "downloads": -1, "filename": "coconut_lib-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c27cbe40b17127dfc2e5e0b5422e9c41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2527, "upload_time": "2018-05-06T11:20:04", "url": "https://files.pythonhosted.org/packages/af/6c/e4cf0dc496f3b121227d0a8b28514d1b8e404ddcd1ff63e0e9078d5a05a3/coconut_lib-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7dda9bb4d930fc05cd4b568b1769e3ea", "sha256": "0c179f6311d27811036fac04e733649a881ad5c5ab1fb92320e5a04c5aa82e8e" }, "downloads": -1, "filename": "coconut-lib-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7dda9bb4d930fc05cd4b568b1769e3ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3145, "upload_time": "2018-05-06T11:20:05", "url": "https://files.pythonhosted.org/packages/e5/97/55d75ea9f0e1dea7e8cac4bbccf02a0cf2894a22aad3bfd254cdc1461b86/coconut-lib-0.0.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "5c4bd5f779666a3bb4e5cdc479f92a38", "sha256": "3e58a42605c7bf9184be15aba818a6de49bef0322fb763b8f8e8d7f35cfb8303" }, "downloads": -1, "filename": "coconut_lib-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5c4bd5f779666a3bb4e5cdc479f92a38", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6163, "upload_time": "2018-05-06T15:46:11", "url": "https://files.pythonhosted.org/packages/e5/7e/a6691d675470ac64ffdad58854f3470930d6ae0487499761aa57e517611c/coconut_lib-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "207c1e17c2ede52b112f6ea2b8587c22", "sha256": "253cf8722696b5ff70519106577cf0b9ddb68cee34f1d833b3449cf091bbc812" }, "downloads": -1, "filename": "coconut-lib-1.0.0.tar.gz", "has_sig": false, "md5_digest": "207c1e17c2ede52b112f6ea2b8587c22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5812, "upload_time": "2018-05-06T15:46:13", "url": "https://files.pythonhosted.org/packages/ae/9f/2066ea2786999957b17c1f160dac81073230ee36b8880b96c6176b23f2a1/coconut-lib-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "863fd3dbc31f805c2dac5e99c02653a7", "sha256": "a5835ad01997e1c2cc056ffe362b226c48b0ac85ed59a939bba958239f636f46" }, "downloads": -1, "filename": "coconut_lib-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "863fd3dbc31f805c2dac5e99c02653a7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6128, "upload_time": "2018-05-06T16:35:49", "url": "https://files.pythonhosted.org/packages/b3/53/f7374d6a2bae6ef3c2b61260c1356538ffc3e033598f0c206a4922918b1e/coconut_lib-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc049bbd9e5593cc6cd087d27148c891", "sha256": "8e740f55045a9a6077c6cdb08a50e6538ec1719e9df0a6779daee7e3e77b08d7" }, "downloads": -1, "filename": "coconut-lib-1.0.1.tar.gz", "has_sig": false, "md5_digest": "fc049bbd9e5593cc6cd087d27148c891", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5774, "upload_time": "2018-05-06T16:35:50", "url": "https://files.pythonhosted.org/packages/c9/95/e54c3a1ad4d69d3e039b5c9df0e28890a71347fd5a06828dfcaad6319e32/coconut-lib-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "b494fe530b5dbfc4b53adaa62f547b10", "sha256": "5048417bcc81bbca91412ad7f1405eee0befdf08588557899c505553819f0da6" }, "downloads": -1, "filename": "coconut_lib-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b494fe530b5dbfc4b53adaa62f547b10", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6765, "upload_time": "2018-05-08T18:58:02", "url": "https://files.pythonhosted.org/packages/5a/fc/322b7be423dd01e0aedefdc22c393e7b4f3f9c5d2b7a458dc00e99796a7f/coconut_lib-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "741fe550a8bc738243a544396d8c1c30", "sha256": "3c6307f6dc258216bbf43d000de18e56010a307872e4d5ef83601c0f5c66d368" }, "downloads": -1, "filename": "coconut-lib-1.0.2.tar.gz", "has_sig": false, "md5_digest": "741fe550a8bc738243a544396d8c1c30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6489, "upload_time": "2018-05-08T18:58:04", "url": "https://files.pythonhosted.org/packages/a1/95/171a2b4300f559f154316a0b1858de79b3748490ce63a484f2ea5c799dcf/coconut-lib-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "034a5f81f78a30c2dd6cc6926aca057c", "sha256": "4eef5fa685f6bd25e2f28f0361eac8c028659f78acdae41550b23f43fc23cab1" }, "downloads": -1, "filename": "coconut_lib-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "034a5f81f78a30c2dd6cc6926aca057c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6787, "upload_time": "2018-05-08T19:30:08", "url": "https://files.pythonhosted.org/packages/f7/48/857ec4e0afa057296fc880e33ccb3132ca8d2b722f35af7bb0a32ae6959c/coconut_lib-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f849d514024b5f019c5db6858a37e36a", "sha256": "14d62d4a59cf89104629b28ed6d7965e76032a85d54d6dc7b8abb866ea0dfc93" }, "downloads": -1, "filename": "coconut-lib-1.0.3.tar.gz", "has_sig": false, "md5_digest": "f849d514024b5f019c5db6858a37e36a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6503, "upload_time": "2018-05-08T19:30:10", "url": "https://files.pythonhosted.org/packages/ee/7a/c169bb810f65f96e0e56f6cc315219eef7c49102da02ed219036dff2ddc9/coconut-lib-1.0.3.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a3c5918d53e25eda8fe6ef8a49c4a2d5", "sha256": "de46767e5868273c873d0d25d0bc269fc2532008be293b91eb93def245873080" }, "downloads": -1, "filename": "coconut_lib-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a3c5918d53e25eda8fe6ef8a49c4a2d5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7582, "upload_time": "2018-05-13T19:06:43", "url": "https://files.pythonhosted.org/packages/ff/4d/7e01747354c00362a78fa4fa016500599f873ca89103cd46437c9356f9a4/coconut_lib-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6aae265feee728c48f821e8ddc258a62", "sha256": "d95ee3ae3bba52a810322163da770030a4709ae5b47a0b5b1e5ef37c42e196a1" }, "downloads": -1, "filename": "coconut-lib-1.1.0.tar.gz", "has_sig": false, "md5_digest": "6aae265feee728c48f821e8ddc258a62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7264, "upload_time": "2018-05-13T19:06:45", "url": "https://files.pythonhosted.org/packages/31/88/c694c32af918e5db3e960c794067045c0b9a64c6a401bf9a581ef2b0b782/coconut-lib-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "2c989f5d2e98074be642917616dafb78", "sha256": "0468639c1cad474125fa0cdd43402163b33f1964c8b9063ecbb430772c17406d" }, "downloads": -1, "filename": "coconut_lib-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c989f5d2e98074be642917616dafb78", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7505, "upload_time": "2018-05-13T20:25:36", "url": "https://files.pythonhosted.org/packages/87/0c/d8e22983fed87397e98e3a51704ccf2e071eff574b5f3cef76f947a1e872/coconut_lib-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0eaf2013d79634e2b4d7067cd3820747", "sha256": "41234e65cb10f54fbcb8860e6a384a93844cf5913b8ce5393c9dc9ad93711a72" }, "downloads": -1, "filename": "coconut-lib-1.1.1.tar.gz", "has_sig": false, "md5_digest": "0eaf2013d79634e2b4d7067cd3820747", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7194, "upload_time": "2018-05-13T20:25:37", "url": "https://files.pythonhosted.org/packages/c3/18/78fe0bbe8e343c4607cc5bc026086d9a9b4dc07aea8cf0743b1f0faf1206/coconut-lib-1.1.1.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "b888b5b8998a9940707487f4f5b98144", "sha256": "6191276be89b6e908e9cee918009e74969c9a40e6129998435e5f912483e4395" }, "downloads": -1, "filename": "coconut_lib-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b888b5b8998a9940707487f4f5b98144", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11087, "upload_time": "2018-12-05T08:41:39", "url": "https://files.pythonhosted.org/packages/a2/13/f72bebaf943c325932d6d0fc5cba42cf6b9f22e104967763011c7931afed/coconut_lib-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "329f3a56885a9862cc2b198e2044984f", "sha256": "abbe9b5eede489174203cc6b1e4d8be0419a26b36ca27c567e58b9df0227626d" }, "downloads": -1, "filename": "coconut-lib-1.2.1.tar.gz", "has_sig": false, "md5_digest": "329f3a56885a9862cc2b198e2044984f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7709, "upload_time": "2018-12-05T08:41:41", "url": "https://files.pythonhosted.org/packages/9e/1d/6315572c303cf1ea62bd71f54b09553ce0f2952166d55f5c28379ab315fa/coconut-lib-1.2.1.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "245d3cc93b4bb6e1acb7a44956ef1e4b", "sha256": "e1b2977c9b22051b6aec77942b21e448ffc13ddc3359974f4b5c0e01470b0621" }, "downloads": -1, "filename": "coconut_lib-1.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "245d3cc93b4bb6e1acb7a44956ef1e4b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11173, "upload_time": "2018-12-05T09:08:51", "url": "https://files.pythonhosted.org/packages/da/b5/ce796214f41cbdbb8f21719788d95029df44befea8086dd1f73ceb853922/coconut_lib-1.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce618fc8dbb41116b5ab0f0f20481c24", "sha256": "b9fd8d30eba33674199ef4295f164a04561db2cc58f8c7b44637daa4db94b196" }, "downloads": -1, "filename": "coconut-lib-1.3.1.tar.gz", "has_sig": false, "md5_digest": "ce618fc8dbb41116b5ab0f0f20481c24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7797, "upload_time": "2018-12-05T09:08:52", "url": "https://files.pythonhosted.org/packages/8f/76/06b6b012a41ea034895bf18f4e56e7f9d8a3735ee179ae296f799922a643/coconut-lib-1.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "245d3cc93b4bb6e1acb7a44956ef1e4b", "sha256": "e1b2977c9b22051b6aec77942b21e448ffc13ddc3359974f4b5c0e01470b0621" }, "downloads": -1, "filename": "coconut_lib-1.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "245d3cc93b4bb6e1acb7a44956ef1e4b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11173, "upload_time": "2018-12-05T09:08:51", "url": "https://files.pythonhosted.org/packages/da/b5/ce796214f41cbdbb8f21719788d95029df44befea8086dd1f73ceb853922/coconut_lib-1.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce618fc8dbb41116b5ab0f0f20481c24", "sha256": "b9fd8d30eba33674199ef4295f164a04561db2cc58f8c7b44637daa4db94b196" }, "downloads": -1, "filename": "coconut-lib-1.3.1.tar.gz", "has_sig": false, "md5_digest": "ce618fc8dbb41116b5ab0f0f20481c24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7797, "upload_time": "2018-12-05T09:08:52", "url": "https://files.pythonhosted.org/packages/8f/76/06b6b012a41ea034895bf18f4e56e7f9d8a3735ee179ae296f799922a643/coconut-lib-1.3.1.tar.gz" } ] }