{ "info": { "author": "Jeremy R. Gray", "author_email": "jrgray@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", "Topic :: Security", "Topic :: System :: Systems Administration" ], "description": "===========\n pyFileSec\n===========\n\npyFileSec provides robust yet easy-to-use tools for working with files that may\ncontain sensitive information. The aim is to achieve an \"industry standard\"\nlevel of strong privacy, capable of protecting confidential information from\ninspection or accidental disclosure. Integrity assurance may be useful in\narchival and provenance applications.\n\nOverview\n---------\n\nThe motivation for developing pyFileSec is to better secure research data obtained\nfrom human subjects, e.g., in combination with PsychoPy (http://www.psychopy.org)\nor the Open Science Framework (http://www.openscienceframework.org). The hope is\nthat pyFileSec will be more widely useful. For example, command-line options\nmake it accessible from non-python or non-open-source programs.\n\nSeveral truly excellent Python packages are available for encryption. However,\nfile security requires more than just good encryption, e.g., securely deleting\na file after encryption. The main and potentially\nunique contribution of pyFileSec is that it aspires to provide cross-platform,\nsecure file-management with a low barrier to entry and a stable API going\nforward. These considerations motivate many of the design choices.\n\nThe main functions provided include encryption (``encrypt``, ``decrypt``,\n``rotate``) and verification (``sign``, ``verify``). It is also easy to\nobscure file length (``pad``, ``unpad``), securely remove files from disk\n(``destroy``) and inspect meta-data (``.metadata``). Large files (tested up to 8G) and\ncommand-line usage are also supported. By default, file permissions are set to\nconservative values (only Mac & linux at this point). Unencrypted files are\ndeleted securely after a successful encryption. Multiple hardlinks, version\ncontrol, and Dropbox folders are detected and reported.\n\npyFileSec provides the class ``SecFile``, which is designed to be easy to use::\n\n >>> from pyfilesec import SecFile\n >>> sf = SecFile('path/to/data.txt')\n >>> sf.encrypt('path/to/pubkey.pem')\n\nPublic-key (asymmetric) encryption is used for security and flexibility,\ncurrently relying on calls to OpenSSL for all cryptography. The aim is to provide\na robust and easily extensible framework for adding other encryption backends,\nwithout requiring changes to the API.\n\nBug reports and code contributions are welcome; the project is on github and you\ncan contact me there. Help with Windows file permissions would be particularly\nwelcome (see the issues list). For contacting me privately, e.g., about security\nissues, please look for my email address at the top of the main code.\n\nSoftware that includes pyFileSec\n---------------------------------\n- PsychoPy (v1.79.00+)\n\nContributors\n-------------\nJeremy R. Gray - package creator and maintainer (GPG key D934B0D7)\n\nMichael Stone - awesome code review\n\nSol Simpson - Windows compatibility\n\nMilestones\n-----------\n\n- 0.3 Python 3 (2to3 mostly passes now)\n- 0.4 Alternative encryption: support for gpg-based management of RSA keys\n- 0.5 Windows file-permissions; possible SecStr\n\nDev branch status\n------------------\n\nThis status information concerns the master branch of the source code on\ngithub. Pypi releases are made from time to time, based on stable points\nin the development code.\n\n.. image:: https://travis-ci.org/jeremygray/pyfilesec.png?branch=master\n :target: https://travis-ci.org/jeremygray/pyfilesec?branch=master\n\n.. image:: https://coveralls.io/repos/jeremygray/pyfilesec/badge.png?branch=master\n :target: https://coveralls.io/r/jeremygray/pyfilesec?branch=master\n\nSee also\n---------\n\n- pyCrypto, M2Crypto, pyOpenSSL - broad crypto packages, few sys-admin features\n- pycogworks.crypto - similar audience as pyfilesec, no file encryption", "description_content_type": null, "docs_url": "https://pythonhosted.org/PyFileSec/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jeremygray/pyFileSec", "keywords": "encryption,security,privacy,integrity,human subjects,research", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "PyFileSec", "package_url": "https://pypi.org/project/PyFileSec/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/PyFileSec/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/jeremygray/pyFileSec" }, "release_url": "https://pypi.org/project/PyFileSec/0.2.14/", "requires_dist": null, "requires_python": null, "summary": "File-oriented privacy & integrity management tools", "version": "0.2.14" }, "last_serial": 1072246, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "85eaa40597e2a96b6a6385271e17101a", "sha256": "30cc63f3cc4b0e0fbab14734e2baffa24c28495c1233afa336ed0aeaeaa6494d" }, "downloads": -1, "filename": "PyFileSec-0.1.2.tar.gz", "has_sig": true, "md5_digest": "85eaa40597e2a96b6a6385271e17101a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31257, "upload_time": "2013-06-02T03:40:06", "url": "https://files.pythonhosted.org/packages/95/f8/f7a1babb5160eae5314d29ffa4ea7623ba1690f3e9bd21303fb8bb80608e/PyFileSec-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "814830e714f497c8e256e1a49ed63b5e", "sha256": "bd86b75a64a0814f799335713a74f0cc6e918fc8e9d6d38272f8fea8cd1b551f" }, "downloads": -1, "filename": "PyFileSec-0.1.3.tar.gz", "has_sig": true, "md5_digest": "814830e714f497c8e256e1a49ed63b5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40309, "upload_time": "2013-06-05T22:16:08", "url": "https://files.pythonhosted.org/packages/4d/cf/37be5d45fa39e0431ac3a94f74ee75c1218f20962da47addd4244409e08d/PyFileSec-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b6a70b371878d59531c8d3080d8991a5", "sha256": "8641fb79003bb5ca021528fbb86dd7f2825858e878731cb60bfe1c6b54db3fa1" }, "downloads": -1, "filename": "PyFileSec-0.1.4.tar.gz", "has_sig": true, "md5_digest": "b6a70b371878d59531c8d3080d8991a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40573, "upload_time": "2013-06-06T05:57:23", "url": "https://files.pythonhosted.org/packages/8b/4b/1d2a520e59684b770e685dfedc39e7de49e88b73febd193096554590e39c/PyFileSec-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "6bf9b4cdc65b77b59ba50d7f5231005c", "sha256": "d0edc6e33a257fed67ff7791037b439dbbf9156fa86886775d1ba800524df506" }, "downloads": -1, "filename": "PyFileSec-0.1.5.tar.gz", "has_sig": true, "md5_digest": "6bf9b4cdc65b77b59ba50d7f5231005c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45936, "upload_time": "2013-06-11T13:06:31", "url": "https://files.pythonhosted.org/packages/a8/e2/aef3ee6ee8ddb292071002f3f2c90ec8621e104ab18159c0eeeb76811be6/PyFileSec-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "32ce28f6abc3e8f2b36eccad7641888a", "sha256": "ab36bea713c3be30999a0377a70142aaecdff7fbe4da1aade9d8460a99d11be5" }, "downloads": -1, "filename": "PyFileSec-0.1.6.tar.gz", "has_sig": true, "md5_digest": "32ce28f6abc3e8f2b36eccad7641888a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45982, "upload_time": "2013-07-13T00:51:10", "url": "https://files.pythonhosted.org/packages/18/28/0783082f157dcbc45c8cd1e44e2cc387244e96c017061fe9aaafe907a592/PyFileSec-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "07d763e6110dcb25b27b2549abb73438", "sha256": "0e86aaf84d84864724364205b03114b9b55aea4d3b8ce6402cb9d72324489310" }, "downloads": -1, "filename": "PyFileSec-0.1.7.tar.gz", "has_sig": true, "md5_digest": "07d763e6110dcb25b27b2549abb73438", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46990, "upload_time": "2013-08-03T20:13:03", "url": "https://files.pythonhosted.org/packages/87/e8/6c81c2afe1ecd190cd24ed180f710ecdbcddd752f47bf0c7f6bb3cba09da/PyFileSec-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "74d7f38e2816a7fb1351f3f455e5334e", "sha256": "9323e2b03e3543967eff7607e39365ed306e10b97408b754d5786673e2ea8a15" }, "downloads": -1, "filename": "PyFileSec-0.1.8.tar.gz", "has_sig": true, "md5_digest": "74d7f38e2816a7fb1351f3f455e5334e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50223, "upload_time": "2013-08-16T23:59:44", "url": "https://files.pythonhosted.org/packages/51/2f/29d1ccd5977be4ffe6ab4c45dd4d606438fe5191737ade41c35683bcb950/PyFileSec-0.1.8.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5d9579eba2052430f8527d0d879112e0", "sha256": "01442f4d76bdb30ea81fe92f0e051e0a383028131ab22d5b39e4c9464e11b312" }, "downloads": -1, "filename": "PyFileSec-0.2.0.tar.gz", "has_sig": true, "md5_digest": "5d9579eba2052430f8527d0d879112e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49660, "upload_time": "2013-08-23T00:33:29", "url": "https://files.pythonhosted.org/packages/76/a4/18f52e5bf455daf0afdbbe43d0b6055766f1e03767bbb78c6ed4b15dc377/PyFileSec-0.2.0.tar.gz" } ], "0.2.01": [ { "comment_text": "", "digests": { "md5": "a81faa4d859ad64442f6ea539b09b6e0", "sha256": "a18dc124d1e8d4772acac60fe0aa4b7ef3cd5e1652c76f3c96b0f4fc82737728" }, "downloads": -1, "filename": "PyFileSec-0.2.01.tar.gz", "has_sig": true, "md5_digest": "a81faa4d859ad64442f6ea539b09b6e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49620, "upload_time": "2013-08-23T03:12:04", "url": "https://files.pythonhosted.org/packages/1e/96/0c0b36e4e210ffbb73ec1e9e3c3458ddb047f18381215056037236cd9acf/PyFileSec-0.2.01.tar.gz" } ], "0.2.10 alpha": [ { "comment_text": "", "digests": { "md5": "890f950c57cbab518bf4697bd6ab4ede", "sha256": "7a318c3ef27ac03afb03170dea0480ce0e796424a4373b55989ae677273f5d9e" }, "downloads": -1, "filename": "PyFileSec-0.2.10 alpha.tar.gz", "has_sig": true, "md5_digest": "890f950c57cbab518bf4697bd6ab4ede", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63968, "upload_time": "2013-09-02T00:15:28", "url": "https://files.pythonhosted.org/packages/02/1a/0d5809737e5f7ec048e3604f1ef8c0466fa8fc7eaac5d14c7dfc9284f8e4/PyFileSec-0.2.10%20alpha.tar.gz" } ], "0.2.11alpha": [ { "comment_text": "", "digests": { "md5": "33600ebd3bb0403ab0410d7858671495", "sha256": "2971349305d1f4a48debe2115b57efa20241cb78d1919c078c3db12ca89996c6" }, "downloads": -1, "filename": "PyFileSec-0.2.11alpha.tar.gz", "has_sig": true, "md5_digest": "33600ebd3bb0403ab0410d7858671495", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80088, "upload_time": "2013-09-23T19:24:56", "url": "https://files.pythonhosted.org/packages/5d/53/98da0f247d445f178aebc5f5df4cafdb6a41df91097c7345e5d5b7f5079a/PyFileSec-0.2.11alpha.tar.gz" } ], "0.2.12alpha": [ { "comment_text": "", "digests": { "md5": "fb7603dde8c50a2428684c74dcaf73dd", "sha256": "90237b9aab223f5790a077110b5f725a29b10aac01fdced23e403ff5692b1895" }, "downloads": -1, "filename": "PyFileSec-0.2.12alpha.tar.gz", "has_sig": true, "md5_digest": "fb7603dde8c50a2428684c74dcaf73dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80127, "upload_time": "2013-09-24T00:57:01", "url": "https://files.pythonhosted.org/packages/e7/f3/4c656b59c8d1016b83ffc3a15b01c5f77b334956260238b1e00dc59c8800/PyFileSec-0.2.12alpha.tar.gz" } ], "0.2.13": [ { "comment_text": "", "digests": { "md5": "9712a584ba15b000c3b6e76bf2987b36", "sha256": "629837a869e53a0e332a9b4cc3a396d77071bc56f9c29ba1637f28cb089767b7" }, "downloads": -1, "filename": "PyFileSec-0.2.13.tar.gz", "has_sig": true, "md5_digest": "9712a584ba15b000c3b6e76bf2987b36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 235994, "upload_time": "2013-12-18T13:15:36", "url": "https://files.pythonhosted.org/packages/7f/d8/2d901a517835f3ba29af3d364b4a9abbd9125870fdf2d99a7774c8200db9/PyFileSec-0.2.13.tar.gz" } ], "0.2.14": [ { "comment_text": "", "digests": { "md5": "5223383359f0f9e19e5556c5e757872b", "sha256": "bf0adf465d0aa7100c9a16eb06588717a85c504e849c4e0aab7457fa076f345e" }, "downloads": -1, "filename": "PyFileSec-0.2.14.tar.gz", "has_sig": true, "md5_digest": "5223383359f0f9e19e5556c5e757872b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 236004, "upload_time": "2014-04-26T02:55:53", "url": "https://files.pythonhosted.org/packages/16/96/e85ff2182c327a7a2cf34f6d28d547e9e78a68779c62af3994483b9373b1/PyFileSec-0.2.14.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5223383359f0f9e19e5556c5e757872b", "sha256": "bf0adf465d0aa7100c9a16eb06588717a85c504e849c4e0aab7457fa076f345e" }, "downloads": -1, "filename": "PyFileSec-0.2.14.tar.gz", "has_sig": true, "md5_digest": "5223383359f0f9e19e5556c5e757872b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 236004, "upload_time": "2014-04-26T02:55:53", "url": "https://files.pythonhosted.org/packages/16/96/e85ff2182c327a7a2cf34f6d28d547e9e78a68779c62af3994483b9373b1/PyFileSec-0.2.14.tar.gz" } ] }