{ "info": { "author": "Bas Westerbaan", "author_email": "bas@westerbaan.name", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Operating System :: POSIX", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Security" ], "description": "py-seccure\n==========\n\nSimple Elliptic Curve Cryptography for Python compatible with the\nexcellent `SECCURE`_ command\nline utility (version 0.5). It's licensed under LGPLv3. See LICENSE.\n\n**Do not use ``py-seccure`` when its operation can be timed by an\nattacker.** See `timing attack`_.\n\nUsage\n-----\n\nPublic key from private\n~~~~~~~~~~~~~~~~~~~~~~~\n\nTo get the public key from the private, you can use the original\ncommandline utility:\n\n::\n\n $ seccure-key\n Assuming curve p160.\n Enter private key: my private key\n The public key is: 8W;>i^H0qi|J&$coR5MFpR*Vn\n\nIn Python:\n\n.. code:: python\n\n >>> import seccure\n >>> str(seccure.passphrase_to_pubkey(b'my private key'))\n '8W;>i^H0qi|J&$coR5MFpR*Vn'\n\nEncrypting a string\n~~~~~~~~~~~~~~~~~~~\n\nTo encrypt for a public key, one would use the original commandline\nutility as follows.\n\n::\n\n $ seccure-encrypt -o private.msg '8W;>i^H0qi|J&$coR5MFpR*Vn' \n Assuming MAC length of 80 bits.\n Go ahead and type your message ...\n This is a very very secret message!\n ^D\n\nIn Python:\n\n.. code:: python\n\n >>> ciphertext = seccure.encrypt(b'This is a very secret message\\n', b'8W;>i^H0qi|J&$coR5MFpR*Vn')\n >>> ciphertext\n '\\x00\\x146\\x17\\xe9\\xc1\\x1a\\x7fkX\\xec\\xa0n,h\\xb4\\xd0\\x98\\xeaO[\\xf8\\xfa\\x85\\xaa\\xb37!\\xf0j\\x0e\\xd4\\xd0\\x8b\\xfe}\\x8a\\xd2+\\xf2\\xceu\\x07\\x90K2E\\x12\\x1d\\xf1\\xd8\\x8f\\xc6\\x91\\t>> seccure.encrypt_file('/path/to/file', '/path/to/file.enc', '8W;>i^H0qi|J&$coR5MFpR*Vn')\n\nDecrypting\n~~~~~~~~~~\n\nTo decrypt the message with the original utility:\n\n::\n\n $ seccure-decrypt -i private.msg\n Assuming MAC length of 80 bits.\n Assuming curve p160.\n Enter private key: my private key\n This is a very very secret message!\n Integrity check successful, message unforged!\n\nIn Python:\n\n.. code:: python\n\n >>> seccure.decrypt(ciphertext, b'my private key')\n 'This is a very secret message\\n'\n\nAnd to decrypt a file:\n\n.. code:: python\n\n >>> seccure.decrypt_file('/path/to/file.enc', '/path/to/file', b'my private key')\n\nCreating a signature\n~~~~~~~~~~~~~~~~~~~~\n\nTo create a signature:\n\n::\n\n $ seccure-sign\n Assuming curve p160.\n Enter private key: my private key\n Go ahead and type your message ...\n This message will be signed\n ^D\n Signature: $HPI?t(I*1vAYsl$|%21WXND=6Br*[>k(OR9B!GOwHqL0s+3Uq\n\nIn Python:\n\n.. code:: python\n\n >>> seccure.sign(b'This message will be signed\\n', b'my private key')\n '$HPI?t(I*1vAYsl$|%21WXND=6Br*[>k(OR9B!GOwHqL0s+3Uq'\n\nVerifying a signature\n~~~~~~~~~~~~~~~~~~~~~\n\nTo verify a signature:\n\n::\n\n $ seccure-verify '8W;>i^H0qi|J&$coR5MFpR*Vn' '$HPI?t(I*1vAYsl$|%21WXND=6Br*[>k(OR9B!GOwHqL0s+3Uq' \n Go ahead and type your message ...\n This message will be signed\n ^D\n Signature successfully verified!\n\nIn Python:\n\n.. code:: python\n\n >>> seccure.verify(b'This message will be signed\\n', b'$HPI?t(I*1vAYsl$|%21WXND=6Br*[>k(OR9B!GOwHqL0s+3Uq', b'8W;>i^H0qi|J&$coR5MFpR*Vn')\n True\n\nInstallation\n------------\n\nOn Debian Wheezy\n~~~~~~~~~~~~~~~~\n\n::\n\n $ apt-get install libgmp3-dev build-essential python-dev python-pip libmpfr-dev libmpc-dev\n $ pip install seccure\n\nOn Ubuntu\n~~~~~~~~~\n\n::\n\n $ apt-get install libgmp-dev build-essential python-dev python-pip libmpfr-dev libmpc-dev\n $ pip install seccure\n\nOn Mac with MacPorts\n~~~~~~~~~~~~~~~~~~~~\n\n::\n\n $ port install py27-gmpy2\n $ pip install seccure\n\nPlease contribute!\n------------------\n\nTo help out, you could:\n\n1. Test and report any bugs or other difficulties.\n2. Implement missing features, such as ``seccure-dh``,\n ``seccure-veridec`` and ``seccure-signcrypt``.\n3. Package py-seccure (or the original SECCURE itself) for your\n platform.\n4. Write more unit tests.\n\n.. image:: https://travis-ci.org/bwesterb/py-seccure.png\n :target: https://travis-ci.org/py-seccure/py-seccure\n\n.. _SECCURE: http://point-at-infinity.org/seccure/\n.. _timing attack: http://en.wikipedia.org/wiki/Timing_attack\n\npy-seccure Changelog\n====================\n\n0.4.0 (2019-07-28)\n------------------\n\n- Use gmpy2 instead of gmpy\n\n\n0.3.3 (2019-04-28)\n------------------\n\n- Bow to flake8\n- py-seccure did not pad a signature with zeroes as seccure expected.\n This caused some signatures generated by py-seccure not being accepted\n by seccure. This has been fixed. Old unpadded signatures are still\n accepted by py-seccure to keep backwards compatibility.\n See #16 (Thanks-to: Tanner Collin)\n- Add support for Python 3.7\n- Drop support for Python 2.6 & Python 3.3\n\n\n0.3.2 (2016-08-07)\n------------------\n\n- Add ``generate_keypair``\n- Fix doubling of affine points. #10 (Thanks-to: Joep Peeters)\n\n\n0.3.1.3 (2016-01-03)\n--------------------\n\n- Small fix for Python 2.6\n\n\n0.3.1.2 (2015-12-29)\n--------------------\n\n- Use static __version__ attribute.\n- Use RST for README", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/bwesterb/py-seccure", "keywords": "", "license": "LGPL 3.0", "maintainer": "", "maintainer_email": "", "name": "seccure", "package_url": "https://pypi.org/project/seccure/", "platform": "", "project_url": "https://pypi.org/project/seccure/", "project_urls": { "Homepage": "http://github.com/bwesterb/py-seccure" }, "release_url": "https://pypi.org/project/seccure/0.4.0/", "requires_dist": null, "requires_python": "", "summary": "SECCURE compatible Elliptic Curve cryptography", "version": "0.4.0" }, "last_serial": 5596119, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "fda77047ebdd65b5d5097c66c14d864d", "sha256": "9f16a6d57187553ba4fd901f7d6476ad596e0eb34568075421fe2606f8669ac9" }, "downloads": -1, "filename": "seccure-0.1.tar.gz", "has_sig": false, "md5_digest": "fda77047ebdd65b5d5097c66c14d864d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7994, "upload_time": "2013-04-10T22:39:24", "url": "https://files.pythonhosted.org/packages/f0/91/78f1dd6a74a2f12942e116e8ab31f88ba529a22c4e8dbafd683eed2ecc6e/seccure-0.1.tar.gz" } ], "0.1.1-2-g4cfe": [ { "comment_text": "", "digests": { "md5": "322b6f1e0d73f46e07413e955a2363c2", "sha256": "def7f4159602b1438a4dc55c8154d69360ce90d3f9497fe4eb82f50f041dd144" }, "downloads": -1, "filename": "seccure-0.1.1-2-g4cfe.tar.gz", "has_sig": false, "md5_digest": "322b6f1e0d73f46e07413e955a2363c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8064, "upload_time": "2013-04-12T08:42:53", "url": "https://files.pythonhosted.org/packages/0b/35/207f397ac19faa6d03c6636705118ea799dfda97155c2321ed30f8a4c3d2/seccure-0.1.1-2-g4cfe.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ceee78ca1df2f2fba04094dd08dcc2de", "sha256": "586fcc4da10fd218d389d46ceb94a0380e682f0bee9b83d8fe0bebc67a893a71" }, "downloads": -1, "filename": "seccure-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ceee78ca1df2f2fba04094dd08dcc2de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8284, "upload_time": "2013-04-14T22:59:05", "url": "https://files.pythonhosted.org/packages/8a/aa/79ddd3c0da84cc9856ce0ada2da0aadc09e300d5752ac6ba674d9b43d1d3/seccure-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c3443fae97811b00b4cb8ad8150469bd", "sha256": "dbf6db7eb4e89a325c5ab82553bb47607348b6a13e480560f7b820ce3d34733d" }, "downloads": -1, "filename": "seccure-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c3443fae97811b00b4cb8ad8150469bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8809, "upload_time": "2013-04-16T12:53:55", "url": "https://files.pythonhosted.org/packages/97/51/3794b6c4f43fb8f033028863f9320eba4c45b448e4b87f0e5c77c78397e2/seccure-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "071986a8bed46e7882d4b29b22013067", "sha256": "45a59a1046df73d77dc496c47168da86ee82fe3e06e74b2846b7a235e85f2288" }, "downloads": -1, "filename": "seccure-0.1.4.tar.gz", "has_sig": false, "md5_digest": "071986a8bed46e7882d4b29b22013067", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9088, "upload_time": "2013-04-16T13:26:39", "url": "https://files.pythonhosted.org/packages/62/eb/d26b8f54a5626a82fe01602c90c703dcf86a3338be4c932af912064dae6f/seccure-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "483027ae63d72127d45ee3f85ee29cf6", "sha256": "36f3e8c132f242971f7a0b8b41010ef3ee8294bf52e4a842143dfc996892cfe2" }, "downloads": -1, "filename": "seccure-0.1.5.tar.gz", "has_sig": false, "md5_digest": "483027ae63d72127d45ee3f85ee29cf6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9602, "upload_time": "2013-06-13T07:49:17", "url": "https://files.pythonhosted.org/packages/0f/f4/c777636ff44741f7878143662d3bdfe8bbc0f8d99565cfd7b23a3be36e23/seccure-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "ae0cd6e5ac424e5752d22fb4d10f2324", "sha256": "beb9988f7cffb3ee8ffbdd54585acdb7b3aa1bd292b0f44f28a3a3674d79fcab" }, "downloads": -1, "filename": "seccure-0.1.6.tar.gz", "has_sig": false, "md5_digest": "ae0cd6e5ac424e5752d22fb4d10f2324", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9601, "upload_time": "2013-06-13T07:52:57", "url": "https://files.pythonhosted.org/packages/52/a2/3989b9139946e204e176617b13444953837385aa3be4dcd9fd375252e9b7/seccure-0.1.6.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "88ac4a31e4209aa6166c07a363103784", "sha256": "e28d18a7824edf98d797512adbf022961d28dfce79340bf70eb911642b7f95fd" }, "downloads": -1, "filename": "seccure-0.2.tar.gz", "has_sig": false, "md5_digest": "88ac4a31e4209aa6166c07a363103784", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10468, "upload_time": "2013-06-26T14:06:34", "url": "https://files.pythonhosted.org/packages/aa/76/3853c43d6250c8bec44287b9117cf2a2df7b8cb046167acdcf95ce5e1d19/seccure-0.2.tar.gz" } ], "0.2-1-g7855": [ { "comment_text": "", "digests": { "md5": "a2bda9497067f4c493710de2c5579968", "sha256": "5823ad66b28629d9351b55a342678091992ef2e33250474330ebf7246f6fda1e" }, "downloads": -1, "filename": "seccure-0.2-1-g7855.tar.gz", "has_sig": false, "md5_digest": "a2bda9497067f4c493710de2c5579968", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10511, "upload_time": "2013-06-26T14:17:14", "url": "https://files.pythonhosted.org/packages/15/ba/b407e9078f92d834c5d29293f2f0412006a1f2c06007f792d5e408086a18/seccure-0.2-1-g7855.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f39c3e662ff6226bd6fb62bdf65152cd", "sha256": "0d99666283f201ef750d236957e7032737896ca13b09cc19347bbea22237b209" }, "downloads": -1, "filename": "seccure-0.2.1.tar.gz", "has_sig": false, "md5_digest": "f39c3e662ff6226bd6fb62bdf65152cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32995, "upload_time": "2013-06-26T15:36:00", "url": "https://files.pythonhosted.org/packages/9a/d6/b6abe9fd5a6229de049d5ebff729691bf7b04bbdc298f851c7189f51e244/seccure-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "ba5658e07fda405774c15b45241f1c82", "sha256": "c68ecf6ffd8f521c4167a155a99ac8551b339061eb4a4bf36e3e8e4e3032381e" }, "downloads": -1, "filename": "seccure-0.2.2.tar.gz", "has_sig": false, "md5_digest": "ba5658e07fda405774c15b45241f1c82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33365, "upload_time": "2013-08-17T11:40:28", "url": "https://files.pythonhosted.org/packages/ba/9b/86decb3826e22d23229586db2599d2e85644850a60fe62d7ed35729baf76/seccure-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "1cda4fa3c1830da03e639e2d99df20a6", "sha256": "1106275e8dc14c1e2d33de74172145359c2b805746f210cf357dbb0f47db3201" }, "downloads": -1, "filename": "seccure-0.2.3.tar.gz", "has_sig": false, "md5_digest": "1cda4fa3c1830da03e639e2d99df20a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33380, "upload_time": "2013-08-17T11:47:46", "url": "https://files.pythonhosted.org/packages/4d/92/b92596ed2f093c0e6d0f5213b1b72cf20b7852c51a4fcd43159c307e882d/seccure-0.2.3.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "7835156beae7af81bdf68675bdef5c6b", "sha256": "bf849fd612988c9253dc9031b31aa028233b4348c6f0f06b832767ee19ca5cb3" }, "downloads": -1, "filename": "seccure-0.3.tar.gz", "has_sig": false, "md5_digest": "7835156beae7af81bdf68675bdef5c6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35678, "upload_time": "2014-08-11T13:12:55", "url": "https://files.pythonhosted.org/packages/97/23/3b0d8aecf77b34974efc3829e611ddfece2a6ef8dd6998301dc8712dcb71/seccure-0.3.tar.gz" } ], "0.3-1-gee95": [ { "comment_text": "", "digests": { "md5": "c992e5697d94094a8380cf6b55cbeae9", "sha256": "6f7fdad86ff8c84cee005fb782a464d851aa18fb3aa2eb83e7e05d7141f55cb7" }, "downloads": -1, "filename": "seccure-0.3-1-gee95.tar.gz", "has_sig": false, "md5_digest": "c992e5697d94094a8380cf6b55cbeae9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35733, "upload_time": "2014-08-13T09:47:40", "url": "https://files.pythonhosted.org/packages/3c/c6/1400bb175aecf5d56460a081d5cae490b3eb618b23fa1ac9b91fa2203794/seccure-0.3-1-gee95.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "88f53a45a49b28a9024070495686581d", "sha256": "abf78826eb574b340eb6b855ada7f0af651335c5457a5103daffb74d9a8be913" }, "downloads": -1, "filename": "seccure-0.3.1.tar.gz", "has_sig": false, "md5_digest": "88f53a45a49b28a9024070495686581d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35624, "upload_time": "2015-09-13T13:17:11", "url": "https://files.pythonhosted.org/packages/d5/55/54a522a08662a248f4ba5e671ed974a67db9c51fadf3cee34923fa275be4/seccure-0.3.1.tar.gz" } ], "0.3.1.1": [ { "comment_text": "", "digests": { "md5": "a7887b50a4d0e6539a912d6556ae74d0", "sha256": "227c8d86d47b41d5029f4cf9c37f2fcb86c752332d6e20d3ae91c8fbf6753c9c" }, "downloads": -1, "filename": "seccure-0.3.1.1.tar.gz", "has_sig": false, "md5_digest": "a7887b50a4d0e6539a912d6556ae74d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35719, "upload_time": "2015-11-22T19:27:21", "url": "https://files.pythonhosted.org/packages/86/d5/bbc9fe77e3a9f5db58e8a58b4714273e843ac04aa73644376b44876eea27/seccure-0.3.1.1.tar.gz" } ], "0.3.1.2": [ { "comment_text": "", "digests": { "md5": "845d6e5f063535766cf25e0aa297b899", "sha256": "ae8533223578d741e93323c0457d850b2ba3bcfbd4b4e7cba9d30f2af9691d6c" }, "downloads": -1, "filename": "seccure-0.3.1.2.tar.gz", "has_sig": false, "md5_digest": "845d6e5f063535766cf25e0aa297b899", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39333, "upload_time": "2015-12-29T20:56:29", "url": "https://files.pythonhosted.org/packages/d6/48/395da1bc1b424478962a1389ae7fd9abc5df85eb4068baa9183856b136b0/seccure-0.3.1.2.tar.gz" } ], "0.3.1.3": [ { "comment_text": "", "digests": { "md5": "7cde846b2bb53d0e7998d7deedb1959e", "sha256": "27b26f26596368b749b9f4fdb67220a90ad8e2401bdc2ba05819f3e02d1b777b" }, "downloads": -1, "filename": "seccure-0.3.1.3.tar.gz", "has_sig": false, "md5_digest": "7cde846b2bb53d0e7998d7deedb1959e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39350, "upload_time": "2016-01-03T12:46:24", "url": "https://files.pythonhosted.org/packages/64/a0/139c0dd1fb46be1676abdf4f2c0e130c02209e909fe506b7531f33898087/seccure-0.3.1.3.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "8d27d1be21aaab5ea07da611a0e2357d", "sha256": "03b69cb00bf032c9b4271bf23a6ed504510493829f7deefa16430afa64a20120" }, "downloads": -1, "filename": "seccure-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8d27d1be21aaab5ea07da611a0e2357d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39703, "upload_time": "2016-08-07T21:28:21", "url": "https://files.pythonhosted.org/packages/fa/86/6dac8027bec7a0be84faee3487ee4d8284b8f9cf48657bbf08d2a685891e/seccure-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "4538507ccec90b26c331ff6568926568", "sha256": "e559d03c55e19508d25832d8322bfdb96739f88eca4bdbbc22be9eecd8d2afdf" }, "downloads": -1, "filename": "seccure-0.3.3.tar.gz", "has_sig": false, "md5_digest": "4538507ccec90b26c331ff6568926568", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40094, "upload_time": "2019-04-28T20:53:36", "url": "https://files.pythonhosted.org/packages/98/ec/599d6537611f1aa0fffb5147aa3f86365a112790741fa497529c4b8cff8d/seccure-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "89066d40dfec068aa71a2c7543a139df", "sha256": "8e01be23f56a7d01c23826360e344d2932807a13456bdbbfcab5f5f0a8354517" }, "downloads": -1, "filename": "seccure-0.4.0.tar.gz", "has_sig": false, "md5_digest": "89066d40dfec068aa71a2c7543a139df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40143, "upload_time": "2019-07-28T16:50:59", "url": "https://files.pythonhosted.org/packages/6e/a9/0bb508d54f0dab2bf97b7555ef9e6f70e1b64b89f752184fb8b445fef13e/seccure-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "89066d40dfec068aa71a2c7543a139df", "sha256": "8e01be23f56a7d01c23826360e344d2932807a13456bdbbfcab5f5f0a8354517" }, "downloads": -1, "filename": "seccure-0.4.0.tar.gz", "has_sig": false, "md5_digest": "89066d40dfec068aa71a2c7543a139df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40143, "upload_time": "2019-07-28T16:50:59", "url": "https://files.pythonhosted.org/packages/6e/a9/0bb508d54f0dab2bf97b7555ef9e6f70e1b64b89f752184fb8b445fef13e/seccure-0.4.0.tar.gz" } ] }