{ "info": { "author": "Vitalik Buterin", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "py_ecc\n==========================\nElliptic curve crypto in python including secp256k1 and alt_bn128\n\n[![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/ethereum/py_ecc) [![Build Status](https://circleci.com/gh/ethereum/py_ecc.svg?style=shield)](https://circleci.com/gh/ethereum/py_ecc) [![PyPI version](https://badge.fury.io/py/py-ecc.svg)](https://badge.fury.io/py/py-ecc)\n\n\n## Quickstart\n```sh\npip install py_ecc\n```\n\n## BLS Signatures\n\n```python\nfrom py_ecc import bls\n\ndomain = 43\n\nprivate_key = 5566\npublic_key = bls.privtopub(private_key)\n\n# Hash your message to 32 bytes\nmessage_hash = b'\\xab' * 32\n\n# Signing\nsignature = bls.sign(message_hash, private_key, domain)\n\n# Verifying\nassert bls.verify(message_hash, public_key, signature, domain)\n```\n\nThink of a `domain` as a version. Signing and verifying would not work on different domains. Setting a new domain in an upgraded system prevents it from being affected by the old messages and signatures.\n\n### Aggregating Signatures and Public Keys\n\n```python\nprivate_keys = [3, 14, 159]\npublic_keys = [bls.privtopub(key) for key in private_keys]\nsignatures = [bls.sign(message_hash, key, domain) for key in private_keys]\n\n# Aggregating\nagg_sig = bls.aggregate_signatures(signatures)\nagg_pub = bls.aggregate_pubkeys(public_keys)\n\n# Verifying\nassert bls.verify(message_hash, agg_pub, agg_sig, domain)\n```\n\n### Multiple Aggregation\n\n```python\nmessage_hash_1, message_hash_2 = b'\\xaa' * 32, b'\\xbb' * 32\n\nmsg_hashes = [message_hash_1, message_hash_2]\nagg_pubs = [agg_pub_1, agg_pub_2]\nagg_agg_sig = bls.aggregate_signatures([agg_sig_1, agg_sig_2])\n\nassert bls.verify_multiple(agg_pubs, msg_hashes, agg_agg_sig, domain)\n```\n\n## Developer Setup\n\nIf you would like to hack on py_ecc, please check out the [Ethereum Development Tactical Manual](https://github.com/ethereum/ethereum-dev-tactical-manual) for information on how we do:\n\n- Testing\n- Pull Requests\n- Code Style\n- Documentation\n\n## Got bug?\nFeel free to create issue under https://github.com/ethereum/py_ecc/issues\n\n\n## Copyright and Licensing\nProject is licensed under the MIT license.\n\n\n## Release setup\n\nTo release a new version:\n\n```sh\nmake release bump=$$VERSION_PART_TO_BUMP$$\n```\n\n#### How to bumpversion\n\nThe version format for this repo is `{major}.{minor}.{patch}` for stable, and\n`{major}.{minor}.{patch}-{stage}.{devnum}` for unstable (`stage` can be alpha or beta).\n\nTo issue the next version in line, specify which part to bump,\nlike `make release bump=minor` or `make release bump=devnum`.\n\nIf you are in a beta version, `make release bump=stage` will switch to a stable.\n\nTo issue an unstable version when the current version is stable, specify the\nnew version explicitly, like `make release bump=\"--new-version 4.0.0-alpha.1 devnum\"`\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://github.com/ethereum/py_ecc", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "py-ecc", "package_url": "https://pypi.org/project/py-ecc/", "platform": "", "project_url": "https://pypi.org/project/py-ecc/", "project_urls": { "Homepage": "https://github.com/ethereum/py_ecc" }, "release_url": "https://pypi.org/project/py-ecc/1.7.1/", "requires_dist": [ "eth-typing (<3.0.0,>=2.1.0)", "eth-utils (<2,>=1.3.0)", "mypy-extensions (>=0.4.1)", "bumpversion (<1,>=0.5.3) ; extra == 'dev'", "twine ; extra == 'dev'", "pytest (==3.10.1) ; extra == 'dev'", "pytest-xdist (==1.26.0) ; extra == 'dev'", "flake8 (==3.5.0) ; extra == 'dev'", "mypy (==0.641) ; extra == 'dev'", "mypy-extensions (>=0.4.1) ; extra == 'dev'", "flake8 (==3.5.0) ; extra == 'lint'", "mypy (==0.641) ; extra == 'lint'", "mypy-extensions (>=0.4.1) ; extra == 'lint'", "pytest (==3.10.1) ; extra == 'test'", "pytest-xdist (==1.26.0) ; extra == 'test'" ], "requires_python": ">=3.5, <4", "summary": "Elliptic curve crypto in python including secp256k1 and alt_bn128", "version": "1.7.1" }, "last_serial": 5536129, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "d33ec25317299eb8e5bcad1f5c40a7bc", "sha256": "56b5292b719b451e2220217e8052f10fec5596b9f48d315e1fd941b850b46660" }, "downloads": -1, "filename": "py_ecc-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d33ec25317299eb8e5bcad1f5c40a7bc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15654, "upload_time": "2017-07-07T06:01:25", "url": "https://files.pythonhosted.org/packages/83/e6/352d3ceb295fb9a46693e3b919d1341453a901a2fd2a549e12835d148a99/py_ecc-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfb6c315912304fd4c4bd5de8a10a740", "sha256": "b2446a7a478c9ed5a1704882be02d7ab34d868d4e2b002017ef71b6d70bffacb" }, "downloads": -1, "filename": "py_ecc-1.0.0.tar.gz", "has_sig": false, "md5_digest": "cfb6c315912304fd4c4bd5de8a10a740", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9426, "upload_time": "2017-07-07T06:01:23", "url": "https://files.pythonhosted.org/packages/2c/a5/7b1ccffe9b657b8d98601194108d3c2119ced1219a986a884956e8536bdf/py_ecc-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "9d3611458c991af1e78850f6f7080af9", "sha256": "3561f2e1727a6711d5b5e58ce8fcfc2471af8f7594d480932c0d91910bcb316c" }, "downloads": -1, "filename": "py_ecc-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "9d3611458c991af1e78850f6f7080af9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15658, "upload_time": "2017-07-08T06:34:52", "url": "https://files.pythonhosted.org/packages/83/1c/62150e7b6a407898fd182ce6b1e8848f6ca5b5c8f183cb9095c6f4b26e6b/py_ecc-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e9194909cc9ef0dec39d38338c4ecd1", "sha256": "e7a1543f97a0d6c32b72f401154b100969d119e1811060584e4d2dd06472646a" }, "downloads": -1, "filename": "py_ecc-1.0.1.tar.gz", "has_sig": false, "md5_digest": "4e9194909cc9ef0dec39d38338c4ecd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9434, "upload_time": "2017-07-08T06:34:49", "url": "https://files.pythonhosted.org/packages/d9/7f/b11ede14aa5d5b930c3d9211fad681bdd429018a6a2d0826cd347ea1dd44/py_ecc-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "bf8460c2919a46b1c410a586830d209b", "sha256": "6fba27c7e8d9f366955854998badae845f08afb576d2079a78d9ccbfbf118dd2" }, "downloads": -1, "filename": "py_ecc-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "bf8460c2919a46b1c410a586830d209b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15658, "upload_time": "2017-07-17T20:41:59", "url": "https://files.pythonhosted.org/packages/d4/97/86d7d90345bd541f8f0efb90258e18874b18c2cb9c9359047ab7d91dc349/py_ecc-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fda727892907e6691f6adedfe785eb30", "sha256": "b2fc65bb7677194aebe5ef5f015a6fd956ddf1ffd7e08a150758be3db735c04b" }, "downloads": -1, "filename": "py_ecc-1.0.2.tar.gz", "has_sig": false, "md5_digest": "fda727892907e6691f6adedfe785eb30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9570, "upload_time": "2017-07-17T20:41:57", "url": "https://files.pythonhosted.org/packages/cf/d1/e7b2634ada8867fe62f8044fe61c4930f95ebdb00da506e722098fe5e74c/py_ecc-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "7283c0fc4782dfbfd53f6be06556d05f", "sha256": "aeb79ab649a0c4c677c8742e4e70f11eaa118dd75468c158ac2e796c6b61ff99" }, "downloads": -1, "filename": "py_ecc-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7283c0fc4782dfbfd53f6be06556d05f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8778, "upload_time": "2017-07-15T13:55:36", "url": "https://files.pythonhosted.org/packages/38/e9/30e0f0b82cb003453af6a5d12d5ffd9109d7c387d55e1d52eb4ef1e81ab9/py_ecc-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "a6d50f8d9de5b68b1501f95a2d3a6235", "sha256": "d73c629741d994ddae3b82bcddd881712c2426086bf91aae9058d0325446e1c4" }, "downloads": -1, "filename": "py_ecc-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a6d50f8d9de5b68b1501f95a2d3a6235", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15713, "upload_time": "2017-07-17T20:56:10", "url": "https://files.pythonhosted.org/packages/2c/db/bcd30256876e9992a4b6966b7144e256f42b0ddd769af32bc2d3a86186d7/py_ecc-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02d25d39d629827665b3ceaf09b79f3e", "sha256": "c805a235438f0cdfb3a2f728c01197b9aa38838ed34032c45ea9f0dccbf5963f" }, "downloads": -1, "filename": "py_ecc-1.1.1.tar.gz", "has_sig": false, "md5_digest": "02d25d39d629827665b3ceaf09b79f3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9600, "upload_time": "2017-07-17T20:56:08", "url": "https://files.pythonhosted.org/packages/1b/58/5b8bf11d9ddafba9cb4719cded1b481d7e6b9cb20953cd5ae14ae90541bb/py_ecc-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "c0f0d77219eb6cb0a49460d7728ff958", "sha256": "f2582423242f55113b1bcfc6ecbfa4e9e611ea3e30fba5d9437525b38cbb9620" }, "downloads": -1, "filename": "py_ecc-1.1.2.tar.gz", "has_sig": false, "md5_digest": "c0f0d77219eb6cb0a49460d7728ff958", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8782, "upload_time": "2017-08-14T01:54:08", "url": "https://files.pythonhosted.org/packages/12/ad/b4d6de8212495b8959e84781ef3cbc5ed8fdadfd3b68b5f50275205bbc3e/py_ecc-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "6f7ac99514feeb17b647142d133c6d7a", "sha256": "4e80a68a7e04ea5671c174f128c22de645e77bc1eb8f28e5f74b42eee493d591" }, "downloads": -1, "filename": "py_ecc-1.1.3.tar.gz", "has_sig": false, "md5_digest": "6f7ac99514feeb17b647142d133c6d7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9541, "upload_time": "2017-08-18T01:58:13", "url": "https://files.pythonhosted.org/packages/62/bd/f0b3811da6812afd6f69239afb0aca764ea4436cfbe0ba2d110c313ed519/py_ecc-1.1.3.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "4340e43b30786b51022d2d0478dedb40", "sha256": "3423f6cf60dd185a509f2eeae14dc2dd24981671bc5856b1cb482e29eaa8c486" }, "downloads": -1, "filename": "py_ecc-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4340e43b30786b51022d2d0478dedb40", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 16219, "upload_time": "2017-11-14T21:02:31", "url": "https://files.pythonhosted.org/packages/26/30/33d3a4e3bb2dcf5212eff0688f700ca3b691a0caad65ecba6d16b375e957/py_ecc-1.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15b92e1c1a4f99dac92e2cfbc76662ac", "sha256": "dcbf7e7ae14cc5a3abb68590bbde3acdd3b3e760106999811dab4f35eaf16d61" }, "downloads": -1, "filename": "py_ecc-1.4.0.tar.gz", "has_sig": false, "md5_digest": "15b92e1c1a4f99dac92e2cfbc76662ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9669, "upload_time": "2017-11-14T21:02:21", "url": "https://files.pythonhosted.org/packages/f8/7c/33eb7cb6993507287d848211bcead4b25d538d23c2845a0d707773fc6fe6/py_ecc-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "7bfb291a9071c5fb17ef66ed270d6d6d", "sha256": "e13fc6b5f52e6031eea8ff397ff1852723db23ef787e6d58baefaf4c19c604c4" }, "downloads": -1, "filename": "py_ecc-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7bfb291a9071c5fb17ef66ed270d6d6d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 16219, "upload_time": "2017-11-15T03:11:26", "url": "https://files.pythonhosted.org/packages/81/eb/10cf60c2e968e462c5e491a496c8c4e75a175c60c5338019aa0da17d86ef/py_ecc-1.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "632eb096c37b84783e287af73df64605", "sha256": "be3eb636f41bf588156c74a993e257b8f4ff37b62f2ced4b1320b12750a2c96a" }, "downloads": -1, "filename": "py_ecc-1.4.1.tar.gz", "has_sig": false, "md5_digest": "632eb096c37b84783e287af73df64605", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9811, "upload_time": "2017-11-15T03:11:20", "url": "https://files.pythonhosted.org/packages/9f/d1/811c322cf6f0b210345d0e93638767508ae3283417153a70193133408656/py_ecc-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "27ae4bf5c4be22214207011c6c457538", "sha256": "f747ea69d40160c0a158c116bc3656eece9457cec446c8bfaffffd62f835de56" }, "downloads": -1, "filename": "py_ecc-1.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "27ae4bf5c4be22214207011c6c457538", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 16249, "upload_time": "2017-11-15T03:31:41", "url": "https://files.pythonhosted.org/packages/fe/b0/7289548c100f46097c4a71b52c264b3b67759ab8d39db0f34a6fae8a335d/py_ecc-1.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52587d5a3575fefacf6b17c4be36443d", "sha256": "c7808a70c08bfc5c07b328f4df4406cfd3e365dd81f63bdd997c3c1eae34334a" }, "downloads": -1, "filename": "py_ecc-1.4.2.tar.gz", "has_sig": false, "md5_digest": "52587d5a3575fefacf6b17c4be36443d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9830, "upload_time": "2017-11-15T03:31:36", "url": "https://files.pythonhosted.org/packages/d8/45/fdc64f601da90a5e0a4eced9b2145c2da5ed18926755478e8d18f502a3a1/py_ecc-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "f48e46768062ae64e7ad7f39aee45961", "sha256": "fc787718acbaaa9a292e99e1373c6c30969314d8ab9b2d10f02cc38fc1ac3111" }, "downloads": -1, "filename": "py_ecc-1.4.3.tar.gz", "has_sig": false, "md5_digest": "f48e46768062ae64e7ad7f39aee45961", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9092, "upload_time": "2018-06-23T17:34:41", "url": "https://files.pythonhosted.org/packages/c9/49/6e07c459f57a497ebc69a98f6975289f5300bc3f05f7c0cc11c8272214a9/py_ecc-1.4.3.tar.gz" } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "fed4074504180f7fe8d7f923c2dd8e5a", "sha256": "4c606202db1c503c32e4468ecf3f2bd3d9b9d0dff8f73d383d695bac6a75de0e" }, "downloads": -1, "filename": "py_ecc-1.4.5.tar.gz", "has_sig": false, "md5_digest": "fed4074504180f7fe8d7f923c2dd8e5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18062, "upload_time": "2018-12-11T01:25:52", "url": "https://files.pythonhosted.org/packages/aa/13/ac3e8c0e1bbcfb6878d0f687916d04ccff5d320f33f22863e2a4c6004a2f/py_ecc-1.4.5.tar.gz" } ], "1.4.6": [ { "comment_text": "", "digests": { "md5": "0cf081c903c278fa00dc38785f210713", "sha256": "550faae768c9c7cb919b7bfbf01528fcec683f75b163b45dbfab4ff74e4c889f" }, "downloads": -1, "filename": "py_ecc-1.4.6-py3-none-any.whl", "has_sig": false, "md5_digest": "0cf081c903c278fa00dc38785f210713", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 29663, "upload_time": "2018-12-11T18:51:43", "url": "https://files.pythonhosted.org/packages/3d/26/d77fa6b4523017984251be1605623c1c4984e4abb1d3c4be8a9c250ca500/py_ecc-1.4.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c123390fae9b1c4a98198be1ca73c29", "sha256": "04d8e8452bca5440c2101eb0a5790110ca10db44be4b8a4598776fc6bf7f1a01" }, "downloads": -1, "filename": "py_ecc-1.4.6.tar.gz", "has_sig": false, "md5_digest": "0c123390fae9b1c4a98198be1ca73c29", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 17412, "upload_time": "2018-12-11T18:51:44", "url": "https://files.pythonhosted.org/packages/a0/34/70afdb455b32a6c780e7307596a31d4bf1bab3fb5c04b48035b456fbb413/py_ecc-1.4.6.tar.gz" } ], "1.4.7": [ { "comment_text": "", "digests": { "md5": "787c7067166e904fac0d72a50d9344dd", "sha256": "67577529be4839cfc1a6ded58942ef1fb146d70d12bfcf2c202c35ced47fc1c6" }, "downloads": -1, "filename": "py_ecc-1.4.7-py3-none-any.whl", "has_sig": false, "md5_digest": "787c7067166e904fac0d72a50d9344dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 29679, "upload_time": "2018-12-12T19:26:27", "url": "https://files.pythonhosted.org/packages/9d/2e/3e335989dc215fc7181b8f044517590af9680f2575337021df3832432b2e/py_ecc-1.4.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3e7f4dcb5ab8ad7303dee71c3e84aa1", "sha256": "96d14264962efc52fb359c5e62f8d697c76489156b167ebc5ea7a7a12bb59749" }, "downloads": -1, "filename": "py_ecc-1.4.7.tar.gz", "has_sig": false, "md5_digest": "b3e7f4dcb5ab8ad7303dee71c3e84aa1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 17441, "upload_time": "2018-12-12T19:26:28", "url": "https://files.pythonhosted.org/packages/c6/f3/ab0e7679e30ba929987597864876a92393f14a2e5ff14f6267a688077cf4/py_ecc-1.4.7.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "062b2a7e23ad2a2423f0b0f2db2fc83b", "sha256": "6d4ced8b1f1a632ad3e2f4da73c1dfc5d41761da3b3208b0c570cb6f295138e0" }, "downloads": -1, "filename": "py_ecc-1.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "062b2a7e23ad2a2423f0b0f2db2fc83b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 35183, "upload_time": "2019-03-14T09:29:57", "url": "https://files.pythonhosted.org/packages/57/37/052d1f8d13da5cfc3faf249c6e825d47984fc9065c90cde676e72c762ac8/py_ecc-1.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed7647f1e0896038b9faa16bef0bd55b", "sha256": "2247996cf22c1126f4c9c852c9f2399d71a31e8263943a15d2b3270c7c586591" }, "downloads": -1, "filename": "py_ecc-1.6.0.tar.gz", "has_sig": false, "md5_digest": "ed7647f1e0896038b9faa16bef0bd55b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 21939, "upload_time": "2019-03-14T09:29:59", "url": "https://files.pythonhosted.org/packages/98/76/aa1fd3d912b624fb2afcc677991b9f1ff78516bae79967541a26d50cdc02/py_ecc-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "fbdb350fc1b608676a42009e9ccfa769", "sha256": "69ccd28de584b168c0a2721ca1d6eb46547b51d5070d0c313dc702f0e5d2f8d0" }, "downloads": -1, "filename": "py_ecc-1.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fbdb350fc1b608676a42009e9ccfa769", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 33801, "upload_time": "2019-05-24T06:35:54", "url": "https://files.pythonhosted.org/packages/da/96/5169a0fc3c5863273953302da4469e2eca50a1d10f95a87aeaf0f99f430d/py_ecc-1.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b5502ebe73fbe9e10fa00dcf56274b41", "sha256": "50c1868b463f72ca4055d0778fee49025798d8dfdd4822bea339d275c43b16c8" }, "downloads": -1, "filename": "py_ecc-1.7.0.tar.gz", "has_sig": false, "md5_digest": "b5502ebe73fbe9e10fa00dcf56274b41", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 20565, "upload_time": "2019-05-24T06:35:56", "url": "https://files.pythonhosted.org/packages/1d/4d/e6383e0062f88a33523dfdee69de14d4cf35f1d44b3537b5e6b9f9226534/py_ecc-1.7.0.tar.gz" } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "28b83da94c895abd746fceef53d996a4", "sha256": "c209755bd5943c89ad6fba385c84a891c66fd74e4a5f0cfd3ea72eb9164df70c" }, "downloads": -1, "filename": "py_ecc-1.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "28b83da94c895abd746fceef53d996a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 33827, "upload_time": "2019-07-15T17:32:07", "url": "https://files.pythonhosted.org/packages/b1/35/e0324065e4cd93ba0174f178c73872106cba04c4a72c7d8a95515b83c701/py_ecc-1.7.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9545ae020ad7f924e8d57747013bf2d6", "sha256": "67136ea75c35f7610b8060861c9999eecbe7f22c690882daadbe4e1712a314c0" }, "downloads": -1, "filename": "py_ecc-1.7.1.tar.gz", "has_sig": false, "md5_digest": "9545ae020ad7f924e8d57747013bf2d6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 20576, "upload_time": "2019-07-15T17:32:08", "url": "https://files.pythonhosted.org/packages/91/95/bd629558cb2f5dc934343ce8e9fd8403f8c0097ef59f324da0afe9ca888f/py_ecc-1.7.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "28b83da94c895abd746fceef53d996a4", "sha256": "c209755bd5943c89ad6fba385c84a891c66fd74e4a5f0cfd3ea72eb9164df70c" }, "downloads": -1, "filename": "py_ecc-1.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "28b83da94c895abd746fceef53d996a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 33827, "upload_time": "2019-07-15T17:32:07", "url": "https://files.pythonhosted.org/packages/b1/35/e0324065e4cd93ba0174f178c73872106cba04c4a72c7d8a95515b83c701/py_ecc-1.7.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9545ae020ad7f924e8d57747013bf2d6", "sha256": "67136ea75c35f7610b8060861c9999eecbe7f22c690882daadbe4e1712a314c0" }, "downloads": -1, "filename": "py_ecc-1.7.1.tar.gz", "has_sig": false, "md5_digest": "9545ae020ad7f924e8d57747013bf2d6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 20576, "upload_time": "2019-07-15T17:32:08", "url": "https://files.pythonhosted.org/packages/91/95/bd629558cb2f5dc934343ce8e9fd8403f8c0097ef59f324da0afe9ca888f/py_ecc-1.7.1.tar.gz" } ] }