{ "info": { "author": "Philipp Nieting", "author_email": "developer@nieting.de", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Security :: Cryptography" ], "description": "# PyECCArithmetic\n\nThis package provides basic arithmethic point operations on elliptic curves. The following operations for points are available:\n* Addition\n* Subtraction\n* Multiplication\n* Division\n* Order of point (for fair points)\n* Inversion of a point\n* Is the point on the curve?\n\nThe following curves are already implemented:\n* secp224r1\n* secp256r1\n* secp384r1\n* secp521r1\n* brainpoolP160r1\n* brainpoolP192r1\n* brainpoolP224r1\n* brainpoolP256r1\n* brainpoolP320r1\n* brainpoolP384r1\n* brainpoolP512r1\n\nIt is also possible to define your own curve.\n\n## Installation\n```\npip install PyECCArithmetic\n```\n\n## Addition\n```python\nfrom PyECCArithmetic import *\n\np = Point(x_1, y_1, curve=Curve.secp256r1())\nq = Point(x_2, y_2, curve=Curve.secp256r1())\n\nz = p + q # z is a new point\n```\n\n## Subtraction\n```python\nfrom PyECCArithmetic import *\n\np = Point(x_1, y_1) # curve defaults to Curve.secp256r1()\nq = Point(x_2, y_2)\n\nz = p - q # z = p + (-q), z is a new point\n```\n\n## Multiplication\nMultiplication is realised with the double and add algorithm.\n```python\nfrom PyECCArithmetic import *\n\np = Point(x_1, y_1) # curve defaults to Curve.secp256r1()\n\nz = p * 3 # z is a new point\n```\n\n## Division\n```python\nfrom PyECCArithmetic import *\n\np = Point(x_1, y_1) # curve defaults to Curve.secp256r1()\nq = Point(x_2, y_2)\n\nz = p / q # z is int, such that z * q == p\n```\n\n## Order calculation\n```python\nfrom PyECCArithmetic import *\n\np = Point(x_1, y_1) # curve defaults to Curve.secp256r1()\norder = p.calcOrder(timeout=5) # tries to calculate the order for maximal timeout seconds \n```\n\n## Custom curve definition\n```python\nfrom PyECCArithmetic import *\n\n# Only curves defined as Weierstrass equation are supported\n# y^2 = x^3 + a * x + b mod p\nc = Curve(a, b, p, name='optional')\n```\n\n## Is the point on the curve?\n```python\nfrom PyECCArithmetic import *\n\nonCurve = Point(1,1).isOnCurve # true or false \n```\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/Kavakuo/PyECCArithmetic", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "PyECCArithmetic", "package_url": "https://pypi.org/project/PyECCArithmetic/", "platform": "", "project_url": "https://pypi.org/project/PyECCArithmetic/", "project_urls": { "Homepage": "https://github.com/Kavakuo/PyECCArithmetic" }, "release_url": "https://pypi.org/project/PyECCArithmetic/1.1.0/", "requires_dist": null, "requires_python": ">=3.0", "summary": "Basic arithmetic operations for points on elliptic curves.", "version": "1.1.0" }, "last_serial": 5739803, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "8e98a6c8e288963a06a15801894ff1ad", "sha256": "bff05df792ed28ffc5892b10847680c468d2df282dab5b8227a962fb1ab4baaf" }, "downloads": -1, "filename": "pyECCArithmetic-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8e98a6c8e288963a06a15801894ff1ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7189, "upload_time": "2018-11-11T00:11:19", "url": "https://files.pythonhosted.org/packages/ad/58/a34f5df54544c421b093436d70b7195ba5dfde3d1fef05f2cbe4b49992be/pyECCArithmetic-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3b38e7b13f25f3d9fb91e24a40e020c", "sha256": "9c3383f5f5ff39ab41b37982769d5c10f6972afc4e4f1ba1b9db03e1f711d6d2" }, "downloads": -1, "filename": "pyECCArithmetic-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e3b38e7b13f25f3d9fb91e24a40e020c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 5582, "upload_time": "2018-11-11T00:11:21", "url": "https://files.pythonhosted.org/packages/6c/ba/7003f6e9ce46a76ae66a92c84ba6237469351c7a5450b612f021f766685e/pyECCArithmetic-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d439253544d24ba5704e73c5734c090f", "sha256": "1eaebd5f34c9d9d8f1fa17a53c53b78a40c8925ec9cf4e0319bb8073959f61b6" }, "downloads": -1, "filename": "PyECCArithmetic-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d439253544d24ba5704e73c5734c090f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7277, "upload_time": "2018-11-11T16:22:47", "url": "https://files.pythonhosted.org/packages/76/39/ecf93d5bc45d70f77084d02e9eb8aba5acf73b61aebac55a67265c3dc7a1/PyECCArithmetic-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b43fa9edf46616c520f7b71d042d4a4", "sha256": "7aecde92b0139ea25dec153da0e6835e30079210826db6300f5d044b0f716eb1" }, "downloads": -1, "filename": "PyECCArithmetic-1.0.1.tar.gz", "has_sig": false, "md5_digest": "6b43fa9edf46616c520f7b71d042d4a4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 5675, "upload_time": "2018-11-11T16:22:49", "url": "https://files.pythonhosted.org/packages/89/15/52ef32dc85d36c450fd079a69af30e98bc3a4beb807d17adc5acbc62bf2d/PyECCArithmetic-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "4ad1047457e144b7b49a84aed14c77b1", "sha256": "e2a1f0217c66ab6ec6e674abc5f6662b2a14c09cc8c9f1da102978231edcf580" }, "downloads": -1, "filename": "PyECCArithmetic-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4ad1047457e144b7b49a84aed14c77b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7272, "upload_time": "2019-07-25T17:02:20", "url": "https://files.pythonhosted.org/packages/f5/ce/d0836494602bc2f0c4f6ad62f006977ef696a6e952c252c38d19f416b628/PyECCArithmetic-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a756174506492d111510da41d820427", "sha256": "dfbc9228d1f638dc493f3da76d9fe3c4473ae2d098072438b7b182b4b03e515d" }, "downloads": -1, "filename": "PyECCArithmetic-1.0.2.tar.gz", "has_sig": false, "md5_digest": "2a756174506492d111510da41d820427", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 5647, "upload_time": "2019-07-25T17:02:21", "url": "https://files.pythonhosted.org/packages/69/fc/e4bb4c208f08eeb1c8abef3b76a61db8db91145ac271909a518fe1583205/PyECCArithmetic-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "61b2a3b3b8c0eb7076b7157ef6fa2e5b", "sha256": "80f1eb188e8a1b3ce1299e7ac8c2cc1d4b6d9c4b6d34bb2d7c8b6763e16c9c11" }, "downloads": -1, "filename": "PyECCArithmetic-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "61b2a3b3b8c0eb7076b7157ef6fa2e5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7518, "upload_time": "2019-08-27T22:56:03", "url": "https://files.pythonhosted.org/packages/7f/6c/146d53b0926d2e856bb9a3572f3b5f091d063787edc2231ac50cf743b4d4/PyECCArithmetic-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e66e994a17b368d490d4073f8f85381", "sha256": "3bf7c7f13be277f0f4ee7dc507730274e068529129711ee7cb8362cf1b6b6027" }, "downloads": -1, "filename": "PyECCArithmetic-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7e66e994a17b368d490d4073f8f85381", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 5865, "upload_time": "2019-08-27T22:56:05", "url": "https://files.pythonhosted.org/packages/27/67/dc9fc2b807658b3a167db1fa3163600cf2a317f620c4c0591b39dfa2dd58/PyECCArithmetic-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "61b2a3b3b8c0eb7076b7157ef6fa2e5b", "sha256": "80f1eb188e8a1b3ce1299e7ac8c2cc1d4b6d9c4b6d34bb2d7c8b6763e16c9c11" }, "downloads": -1, "filename": "PyECCArithmetic-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "61b2a3b3b8c0eb7076b7157ef6fa2e5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7518, "upload_time": "2019-08-27T22:56:03", "url": "https://files.pythonhosted.org/packages/7f/6c/146d53b0926d2e856bb9a3572f3b5f091d063787edc2231ac50cf743b4d4/PyECCArithmetic-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e66e994a17b368d490d4073f8f85381", "sha256": "3bf7c7f13be277f0f4ee7dc507730274e068529129711ee7cb8362cf1b6b6027" }, "downloads": -1, "filename": "PyECCArithmetic-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7e66e994a17b368d490d4073f8f85381", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 5865, "upload_time": "2019-08-27T22:56:05", "url": "https://files.pythonhosted.org/packages/27/67/dc9fc2b807658b3a167db1fa3163600cf2a317f620c4c0591b39dfa2dd58/PyECCArithmetic-1.1.0.tar.gz" } ] }