{ "info": { "author": "Sundar Nagarajan", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "py25519\n=======\n\nPython wrapper around curve25519 by mehdi sotoodeh. The files under\npy25519/c are from mehdi sotoodeh and are copied unchanged from\nhttps://github.com/msotoodeh/curve25519.\n\nLICENSE\n=======\n\nThe files under py25519/c are licensed under the MIT LICENSE (see\nlicense.txt file under py25519/c).\n\nAll remaining files in this package are licensed under the GNU General\nPublic License version 3 or (at your option) any later version.\n\nSee the file LICENSE-GPLv3.txt for details of the GNU General Public\nLicense version 3.\n\nClass Documentation\n===================\n\n::\n\n class Key25519(__builtin__.object)\n __init__(self, secretkey=None, verifyingkey=None, pubkey=None)\n '''\n secretkey-->bytes[32]\n verifyingkey-->bytes[32]\n pubkey-->bytes[32]\n\n A PublicKey version of the object will have ONLY verifyingkey\n and pubkey and signingkey will be None\n A PrivateKey version of the object will have secretkey set\n and verifyingkey and pubkey are ignored and derived from secretkey\n\n Storing and reusing the secretkey is a way to recreate your key pair\n '''\n\n get_ecdh_key(self, other)\n '''\n other-->Key25519 instance\n '''\n\n public_key(self)\n '''\n Returns a PublicKey version of this object\n '''\n\n selftest(self)\n '''\n Returns-->boolean\n '''\n\n serialize(self)\n\n sign = wrapped(*args, **kwargs)\n\n verify = wrapped(*args, **kwargs)\n\n # ---------------------------------------------------------------------\n # Properties (data descriptors)\n # ---------------------------------------------------------------------\n\n pubkey\n\n secretkey\n\n signingkey\n\n verifyingkey\n\nSimple test\n===========\n\nsee py25519.test.py\n\n::\n\n from py25519 import Key25519\n\n\n c = Key25519()\n print('secretkey: ', c.secretkey)\n print('signingkey: ', c.signingkey)\n print('verifyingkey: ', c.verifyingkey)\n\n msg = 'Hello world'\n badmsg = msg + '1'\n sig = c.sign(msg)\n badsig = c.sign(badmsg)\n print('good verify: ', c.verify(sig, msg))\n print('badmsg verify: ', c.verify(sig, badmsg))\n print('badsig verify: ', c.verify(badsig, msg))\n\n d = Key25519(secretkey=c.secretkey)\n print('----- d is a copy of c -----')\n print('d.verify: ', d.verify(sig, msg))\n print('c == d:', c == d)\n print('public(c) == public(d):', c.public_key() == d.public_key())\n print('c == public(d):', c == d.public_key())\n\n print('----- e is a new different key -----')\n e = Key25519()\n print('e.verify: ', e.verify(sig, msg))\n print('c == e:', c == e)\n print('public(c) == public(e):', c.public_key() == e.public_key())\n\n print('----- Test ECDH shared key -----')\n ecdh1 = c.get_ecdh_key(e.public_key())\n ecdh2 = e.get_ecdh_key(c.public_key())\n print('ecdh equal: ', ecdh1 == ecdh2)\n ecdh3 = e.get_ecdh_key(c.public_key())\n print('ecdh equal again: ', ecdh1 == ecdh3)", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/sundarnagarajan/py25519/tree/0.13.28", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sundarnagarajan/py25519", "keywords": null, "license": "License :: OSI Approved :: MIT License", "maintainer": null, "maintainer_email": null, "name": "py25519", "package_url": "https://pypi.org/project/py25519/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/py25519/", "project_urls": { "Download": "https://github.com/sundarnagarajan/py25519/tree/0.13.28", "Homepage": "https://github.com/sundarnagarajan/py25519" }, "release_url": "https://pypi.org/project/py25519/0.13.28/", "requires_dist": null, "requires_python": null, "summary": "py25519", "version": "0.13.28" }, "last_serial": 2386658, "releases": { "0.13.20": [ { "comment_text": "", "digests": { "md5": "33571b141c6b697c7044fcb6dad5a7a2", "sha256": "a079113af86bcfcd71a9d01acde96397cbb07b97b6598992703ba58e2ff63925" }, "downloads": -1, "filename": "py25519-0.13.20.tar.gz", "has_sig": false, "md5_digest": "33571b141c6b697c7044fcb6dad5a7a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120113, "upload_time": "2016-03-27T00:27:58", "url": "https://files.pythonhosted.org/packages/42/6f/e3037ba1dcfce440d5e0da45fda1ef00e95750483be50a283cbe8613a8b7/py25519-0.13.20.tar.gz" } ], "0.13.21": [ { "comment_text": "", "digests": { "md5": "e990fdfe7a4cd66b92f7d94148a8bce6", "sha256": "029e5063045ff0b40095b28b9fcb688820d5ce57fe6f41538aaf521637999d1f" }, "downloads": -1, "filename": "py25519-0.13.21.tar.gz", "has_sig": false, "md5_digest": "e990fdfe7a4cd66b92f7d94148a8bce6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120150, "upload_time": "2016-03-27T01:24:06", "url": "https://files.pythonhosted.org/packages/cf/69/a35d3309961853b0648082a924bdfd7af693bdcf2ea2b2428403bee06ffd/py25519-0.13.21.tar.gz" } ], "0.13.22": [ { "comment_text": "", "digests": { "md5": "e45d964b32a88c1fb4d25847f21d4ea3", "sha256": "ddc9d1439433df94649a0932f0b3560264b26e2df7c6944592a6732b1a9bb484" }, "downloads": -1, "filename": "py25519-0.13.22.tar.gz", "has_sig": false, "md5_digest": "e45d964b32a88c1fb4d25847f21d4ea3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120137, "upload_time": "2016-09-12T23:03:19", "url": "https://files.pythonhosted.org/packages/b5/a2/540b45d940a890a84c5db6c3af88de3b611ec7d0035094da5bd949e5d46c/py25519-0.13.22.tar.gz" } ], "0.13.23": [ { "comment_text": "", "digests": { "md5": "de26ad8ea4d04804adb6917f945819ae", "sha256": "25a01c4e4f7225331d3af872cefc7eb4e40418992e70df906b5d2cb32b375796" }, "downloads": -1, "filename": "py25519-0.13.23.tar.gz", "has_sig": false, "md5_digest": "de26ad8ea4d04804adb6917f945819ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120138, "upload_time": "2016-10-07T11:02:45", "url": "https://files.pythonhosted.org/packages/31/3d/0bbdccbdb30dacac5b07a2d472c8b2f71f9fdd55bb1689361e290f01a0b2/py25519-0.13.23.tar.gz" } ], "0.13.24": [ { "comment_text": "", "digests": { "md5": "b1b99455a0622b67db8c05fafcb5b621", "sha256": "76bdd097930cd30ce3cc0edcc7256f0699c4f4b05fdaa99909d6556db71c5e59" }, "downloads": -1, "filename": "py25519-0.13.24.tar.gz", "has_sig": false, "md5_digest": "b1b99455a0622b67db8c05fafcb5b621", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120296, "upload_time": "2016-10-07T11:17:03", "url": "https://files.pythonhosted.org/packages/cf/e9/c672f187944acad000b8d8e1b15a89ab75b522699d425571f655956d7618/py25519-0.13.24.tar.gz" } ], "0.13.25": [ { "comment_text": "", "digests": { "md5": "e86c3c9d48c264e7f0d46df712b6d9c8", "sha256": "cd4c95b5c98e146da6b2bf024aa5f2c85119498eda4c88e6415d10439b24f941" }, "downloads": -1, "filename": "py25519-0.13.25.tar.gz", "has_sig": false, "md5_digest": "e86c3c9d48c264e7f0d46df712b6d9c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120338, "upload_time": "2016-10-07T11:22:34", "url": "https://files.pythonhosted.org/packages/a6/79/1e54d004fd52e0377931f7fcab556adb5c388e947f279c500e4bb32209ed/py25519-0.13.25.tar.gz" } ], "0.13.26": [ { "comment_text": "", "digests": { "md5": "ddbdfce243f46c139018e905d7212f6a", "sha256": "56e9e10c87be0f4857ae28c9fa9ea76cb9195321f0badb2c191f2ae93b985543" }, "downloads": -1, "filename": "py25519-0.13.26.tar.gz", "has_sig": false, "md5_digest": "ddbdfce243f46c139018e905d7212f6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120337, "upload_time": "2016-10-07T11:23:37", "url": "https://files.pythonhosted.org/packages/a8/6f/084e3ff9d1c33f22b5d112f9845343acc4b7a91bab6fb8b4cbe35e7c238a/py25519-0.13.26.tar.gz" } ], "0.13.27": [ { "comment_text": "", "digests": { "md5": "9042633ca08e5468962282cdea877b48", "sha256": "6003fb30bb0e52b608c9681b286cf34f4d0dc9ec8f41f727096eb5da010e1287" }, "downloads": -1, "filename": "py25519-0.13.27.tar.gz", "has_sig": false, "md5_digest": "9042633ca08e5468962282cdea877b48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120317, "upload_time": "2016-10-07T11:27:08", "url": "https://files.pythonhosted.org/packages/2a/87/70bfa31977034a6a49978c2fad6ea3a344d29b94c6be101c27055559c491/py25519-0.13.27.tar.gz" } ], "0.13.28": [ { "comment_text": "", "digests": { "md5": "97ab68502578afc646c1665facfeddae", "sha256": "e6ab97d8bac7c66359e3d333c661e0f96011f0d481b8ff4a469b517085ce5955" }, "downloads": -1, "filename": "py25519-0.13.28.tar.gz", "has_sig": false, "md5_digest": "97ab68502578afc646c1665facfeddae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120281, "upload_time": "2016-10-07T14:47:01", "url": "https://files.pythonhosted.org/packages/72/f4/1e9fe7e8bb8ab8c5be86b77b9cd6ed7a6d6197259162610a0f2655834375/py25519-0.13.28.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "97ab68502578afc646c1665facfeddae", "sha256": "e6ab97d8bac7c66359e3d333c661e0f96011f0d481b8ff4a469b517085ce5955" }, "downloads": -1, "filename": "py25519-0.13.28.tar.gz", "has_sig": false, "md5_digest": "97ab68502578afc646c1665facfeddae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120281, "upload_time": "2016-10-07T14:47:01", "url": "https://files.pythonhosted.org/packages/72/f4/1e9fe7e8bb8ab8c5be86b77b9cd6ed7a6d6197259162610a0f2655834375/py25519-0.13.28.tar.gz" } ] }