{ "info": { "author": "Bogdan Kulynych (EPFL SPRING Lab), Marios Isaakidis, George Danezis (UCL)", "author_email": "bogdan.kulynych@epfl.ch, m.isaakidis@cs.ucl.ac.uk, g.danezis@ucl.ac.uk", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Topic :: Security :: Cryptography" ], "description": ".. image:: https://claimchain.github.io/claimchain.svg\n :width: 50px\n :alt: ClaimChain\n\n###############\nclaimchain-core\n###############\n\n.. image:: https://travis-ci.org/claimchain/claimchain-core.svg?branch=master\n :target: https://travis-ci.org/claimchain/claimchain-core\n :alt: Build Status\n\n.. image:: https://readthedocs.org/projects/claimchain-core/badge/?version=latest\n :target: http://claimchain-core.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://zenodo.org/badge/92275408.svg\n :target: https://zenodo.org/badge/latestdoi/92275408\n :alt: Zenodo Citation\n\nInstalling\n==========\n\nYou can install ``claimchain`` via pip::\n\n pip install claimchain\n\nTo run tests, checkout the git repository and run tox::\n\n\n git clone https://github.com/claimchain/claimchain-core\n cd claimchain-core\n tox\n\nUsage warning\n=============\n\nThis code is made for research purposes. It is not to be used in real-world systems.\nNot all security features are implemented, and some of the cryptographic instantiations\nneed to be changed to more secure alternatives.\n\nUsage\n=====\n\nHigh-level interface for ClaimChain consists of two classes, ``State`` for building claimchains, and ``View`` for parsing and interpreting claimchains.\n\nBuilding chains\n---------------\n\nThe core abstraction for the a ClaimChain user is a `state`. The `state` contains information about the user, and claims they make about other users or objects. Currently, this package only supports private claims, which means the owner of a chain needs to explicitly make every claim readable by intended readers. Once the `state` is constructed it can be committed to the chain.\n\nHere is how user `Alice` would prepare her `state`::\n\n from claimchain import State\n\n state = State()\n\n # Alice adds information about herself\n state.identity_info = \"Hi, I'm Alice\"\n\n # Alice adds private claims\n state['bob'] = 'Bob is a good lad'\n\nMaking claims accessible requires knowing the DH public key of each authorized reader. The way to obtain the DH keys of other users is described later. Assuming Alice has Carol's DH public key, ``carol_dh_pk``, she can allow Carol to access her claim about Bob::\n\n state.grant_access(carol_dh_pk, ['bob'])\n\nNote that the second argument must be an iterable of claim labels, not a single label.\n\nTo commit the state, first, a chain needs to be built, and second, the cryptographic keys have to be generated::\n\n from hippiehug import Chain\n from claimchain import LocalParams, State\n\n state = State()\n\n # Generate cryptographic keys\n params = LocalParams.generate()\n\n store = {}\n chain = Chain(store)\n\n with params.as_default():\n head = state.commit(chain)\n\nThe chain can then be published or transmitted to other users by publishing the ``store`` and communicating the chain's ``head``. Other users will be able to interpret the chain using the ``View`` interface, described below.\n\n\nInterpreting chains\n-------------------\n\nHaving access to the store (dictionary) containing other user's chain, and a head of this user's chain, one can use the ``View`` interface.\n\nHere is how Carol can interpret Alice's claimchain, assuming Alice's store is ``alice_store``, the head of her chain is ``alice_head``, and ``params`` is Carol's ``LocalParams`` object::\n\n from hippiehug import Chain\n from claimchain import View\n\n alice_chain = Chain(alice_store, root_hash=alice_head)\n\n with params.as_default():\n alice_view = View(alice_chain)\n\n # Try to get claim with label 'bob'\n claim = alice_view['bob']\n\n assert claim == b'Bob is a good lad'\n\nFinally, this is how Carol can retrieve Alice's DH public key::\n\n alice_dh_pk = alice_view.params.dh.pk\n\nThis DH public key can be later used to grant Alice rights to read claims on Carol's chain.\n\n\nThis package\n============\n\n======================= =======================================================\nclaimchain/state.py High-level ClaimChain interface\nclaimchain/core.py Core operations of encoding claims and capabilities\nclaimchain/crypto Cryptographic utilities, and algorithm implementations\n======================= =======================================================\n\n\nSimulations\n===========\n\nA core and experimental implementation of ClaimChain, a cryptographic data\nstructure. See the `web page `_ to learn about\nClaimChain.\n\nCheck out the `documentation `_.\n\nAcknowledgements\n================\n\nThis work is funded by the `NEXTLEAP project `_ within the European\nUnion\u2019s Horizon 2020 Framework Programme for Research and Innovation\n(H2020-ICT-2015, ICT-10-2015) under grant agreement 688722.\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "claimchain", "package_url": "https://pypi.org/project/claimchain/", "platform": "", "project_url": "https://pypi.org/project/claimchain/", "project_urls": null, "release_url": "https://pypi.org/project/claimchain/0.3.1/", "requires_dist": [ "six", "petlib", "pyyaml", "attrs", "base58", "statistics", "defaultcontext", "hippiehug (>=0.1.3)", "profiled" ], "requires_python": "", "summary": "Implementation of ClaimChain, a cryptographic data structure", "version": "0.3.1" }, "last_serial": 3891470, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "96647ead9795a32bc12e6db388ced092", "sha256": "35b906495c3a0e1c5c887db6b6b13714a17e5e97dad49c7ed0a50211f260431c" }, "downloads": -1, "filename": "claimchain-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "96647ead9795a32bc12e6db388ced092", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17254, "upload_time": "2018-05-23T10:36:26", "url": "https://files.pythonhosted.org/packages/34/d3/918ad15615dd69227d238104d2c386985f17b19ac71d21ceb3ff65e14d61/claimchain-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1de4dce6c9d2298131c5e2964430f282", "sha256": "31289a913412b3dce5398ed57e462c65f02f62be14c0aa3e6827a23c28a43ee8" }, "downloads": -1, "filename": "claimchain-0.3.0.tar.gz", "has_sig": false, "md5_digest": "1de4dce6c9d2298131c5e2964430f282", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23488, "upload_time": "2018-05-23T10:36:24", "url": "https://files.pythonhosted.org/packages/4f/46/fbed5386d94e11b4f473eeccab331b0d57114d6f57f535d4645775d91834/claimchain-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "bc0ff3da07857b61ba7fb917b8573dba", "sha256": "b9f90ba076d66fe67d620508365652e8b88c4cb08ca33c3d0518b532c92bec23" }, "downloads": -1, "filename": "claimchain-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bc0ff3da07857b61ba7fb917b8573dba", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17241, "upload_time": "2018-05-23T13:43:09", "url": "https://files.pythonhosted.org/packages/62/4f/2315638eeeba564c3d5f11a5c372af21efb9b2f5a519bfda9aebd8b292ed/claimchain-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85ad05144b0bde520f2b87b0e7961a52", "sha256": "344c606bd3675234f79d0d12c5a639b927eb4b3d53edb16d6d7c3dc241f984ed" }, "downloads": -1, "filename": "claimchain-0.3.1.tar.gz", "has_sig": false, "md5_digest": "85ad05144b0bde520f2b87b0e7961a52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23539, "upload_time": "2018-05-23T13:43:03", "url": "https://files.pythonhosted.org/packages/fa/0e/743f74b7b87b8b4509f063c5f4d73d4db04c8390d7c53a31eb1a9e6c6f28/claimchain-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bc0ff3da07857b61ba7fb917b8573dba", "sha256": "b9f90ba076d66fe67d620508365652e8b88c4cb08ca33c3d0518b532c92bec23" }, "downloads": -1, "filename": "claimchain-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bc0ff3da07857b61ba7fb917b8573dba", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17241, "upload_time": "2018-05-23T13:43:09", "url": "https://files.pythonhosted.org/packages/62/4f/2315638eeeba564c3d5f11a5c372af21efb9b2f5a519bfda9aebd8b292ed/claimchain-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85ad05144b0bde520f2b87b0e7961a52", "sha256": "344c606bd3675234f79d0d12c5a639b927eb4b3d53edb16d6d7c3dc241f984ed" }, "downloads": -1, "filename": "claimchain-0.3.1.tar.gz", "has_sig": false, "md5_digest": "85ad05144b0bde520f2b87b0e7961a52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23539, "upload_time": "2018-05-23T13:43:03", "url": "https://files.pythonhosted.org/packages/fa/0e/743f74b7b87b8b4509f063c5f4d73d4db04c8390d7c53a31eb1a9e6c6f28/claimchain-0.3.1.tar.gz" } ] }