{ "info": { "author": "Nejc Saje, Zemanta", "author_email": "nejc@saje.info", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Topic :: Security :: Cryptography" ], "description": "py-secretcrypt\n==============\n\n|Circle CI|\n|Codecov|\n\nUtility for keeping your secrets encrypted. Also has a `Go\nversion `__.\n\nFor example, you have the following configuration file\n\n::\n\n MY_SECRET=VerySecretValue!\n\nbut you can't include that file in VCS because then your secret value\nwould be exposed.\n\nWith **secretcrypt**, you can encrypt your secret using your AWS KMS\nmaster key aliased *MyKey*:\n\n.. code:: bash\n\n $ encrypt-secret kms alias/MyKey\n Enter plaintext: VerySecretValue! # enter\n kms:region=us-east-1:CiC/SXeuXDGRADRIjc0qcE... # shortened for brevity\n\n # --- or --\n $ echo \"VerySecretValue!\" | encrypt-secret kms alias/MyKey \n kms:region=us-east-1:CiC/SXeuXDGRADRIjc0qcE... # shortened for brevity\n # only use piping when scripting, otherwise your secrets will be stored\n # in your shell's history!\n\nuse that secret in my config file\n\n.. code:: python\n\n from secretcrypt import Secret\n MY_SECRET=Secret('kms:region=us-east-1:CiC/SXeuXDGRADRIjc0qcE...') # shortened for brevity\n\nand get the plaintext like\n\n.. code:: python\n\n print MY_SECRET.get()\n # VerySecretValue!\n\nIf you are using very sensitive secrets, you can ensure the plaintext\nis not kept in memory and is only encrypted on demand by using a stricter\nversion:\n\n.. code:: python\n\n from secretcrypt import StrictSecret\n MY_SECRET=StrictSecret('kms:region=us-east-1:CiC/SXeuXDGRADRIjc0qcE...') # shortened for brevity\n\nand get the plaintext like\n\n.. code:: python\n\n print MY_SECRET.decrypt()\n # VerySecretValue!\n\nKMS\n---\n\nThe KMS option uses AWS Key Management Service. When encrypting and\ndecrypting KMS secrets, you need to provide which AWS region the is to\nbe or was encrypted on, but it defaults to ``us-east-1``.\n\nSo if you use a custom region, you must provide it to secretcrypt:\n\n.. code:: bash\n\n encrypt-secret kms --region us-west-1 alias/MyKey\n\nLocal encryption\n----------------\n\nThis mode is meant for local and/or offline development usage. It\ngenerates a local key in your %USER\\_DATA\\_DIR% (see\n`appdirs `__), so that the key\ncannot be accidentally committed to CVS.\n\nIt then uses that key to symmetrically encrypt and decrypt your secrets.\n\nPassword encryption - interactive only\n--------------------------------------\n\nThe password encryption mode should not be used in your application - it is\nmeant for easily sharing secrets among developers. It interactively prompts\nthe user for a password when encrypting the secret. When decrypting, it\nprompts for the password again.\n\n\n.. |Circle CI| image:: https://circleci.com/gh/Zemanta/py-secretcrypt.svg?style=svg\n :target: https://circleci.com/gh/Zemanta/py-secretcrypt\n.. |Codecov| image:: https://codecov.io/gh/Zemanta/py-secretcrypt/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/Zemanta/py-secretcrypt\n\n\n\n\nHistory\n-------\n\n1.0.3 (2017-11-02)\n++++++++++++++++++\n\n- reverted scrypt parameter changes\n\n\n1.0.2 (2017-10-31)\n++++++++++++++++++\n\n- changed scrypt parameters\n\n\n1.0.1 (2017-10-31)\n++++++++++++++++++\n\n- Fixed readme formatting.\n\n\n1.0.0 (2017-10-31)\n++++++++++++++++++\n\n* added password encryption/decryption\n\n0.9.1 (2017-03-28)\n++++++++++++++++++\n\n* Python3 local module fixed issue with utf-8\n* unpinned dependencies\n\n0.4 (2016-03-02)\n++++++++++++++++++\n\n* plaintexts are now returned as strings not as bytes\n\n0.3 (2016-03-02)\n++++++++++++++++++\n\n* BREAKING CHANGE: introduced new semantics for Secret and a new StrictSecret", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/Zemanta/secretcrypt/tarball/0.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Zemanta/secretcrypt", "keywords": "secret,encrypt,decrypt,settings", "license": "", "maintainer": "", "maintainer_email": "", "name": "secretcrypt", "package_url": "https://pypi.org/project/secretcrypt/", "platform": "", "project_url": "https://pypi.org/project/secretcrypt/", "project_urls": { "Download": "https://github.com/Zemanta/secretcrypt/tarball/0.1", "Homepage": "https://github.com/Zemanta/secretcrypt" }, "release_url": "https://pypi.org/project/secretcrypt/1.0.3/", "requires_dist": null, "requires_python": "", "summary": "Encrypt project secrets", "version": "1.0.3" }, "last_serial": 3301437, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "30e4354939eab1ae62b808ec0c6c6181", "sha256": "bec208a184a1447ff8af46e1e6d48395d8ac0d05a8206eed7c686dd12c6a5e06" }, "downloads": -1, "filename": "secretcrypt-0.2.tar.gz", "has_sig": false, "md5_digest": "30e4354939eab1ae62b808ec0c6c6181", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4616, "upload_time": "2016-02-26T07:44:59", "url": "https://files.pythonhosted.org/packages/6c/ef/2014fc957efcdf4d1ef8b1fba58d6286b2f96c353f087edad9e669e7a92d/secretcrypt-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "bf1544911f6598188a934cffab621739", "sha256": "54a18f00ed11f527dc9fcae7c6626e3ac7b850903c5f9f5aa28cabf40563741c" }, "downloads": -1, "filename": "secretcrypt-0.3.tar.gz", "has_sig": false, "md5_digest": "bf1544911f6598188a934cffab621739", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10886, "upload_time": "2016-03-02T10:58:58", "url": "https://files.pythonhosted.org/packages/7f/6e/70b7ae8379fc1950231dd29e90de70425f366a1aff752e514968b2809de4/secretcrypt-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "62e39c6cb19a5cabac087aa3fd5b027f", "sha256": "a00d98fcef3811e527b141c04f0434b6ae2fd4c7226b85a835762b759788b60d" }, "downloads": -1, "filename": "secretcrypt-0.3.1.tar.gz", "has_sig": false, "md5_digest": "62e39c6cb19a5cabac087aa3fd5b027f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10938, "upload_time": "2016-03-02T16:29:14", "url": "https://files.pythonhosted.org/packages/d5/b3/bdacbd2ca9c9b88172f1382d38bfa6c3e0debe54b0d26c19959c4cf04813/secretcrypt-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "dde487be4dcf2daf4a9ae95c0a0e089f", "sha256": "1a127de8893b95d75527ab65e32e237cb1d9935579d1f8e9f213b235589f6a1e" }, "downloads": -1, "filename": "secretcrypt-0.4.tar.gz", "has_sig": false, "md5_digest": "dde487be4dcf2daf4a9ae95c0a0e089f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11104, "upload_time": "2016-03-02T20:06:53", "url": "https://files.pythonhosted.org/packages/e0/83/d0b504c4216390d78cceb17cee781e117dba7398c53ffde16362416ce8c2/secretcrypt-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "7896d6dbba2402abfcd4226e415c7401", "sha256": "51be81825f5478c06f6e04411d17f78ff5f13f26ba9e42c117e39ccd6839a1bb" }, "downloads": -1, "filename": "secretcrypt-0.4.1.tar.gz", "has_sig": false, "md5_digest": "7896d6dbba2402abfcd4226e415c7401", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11085, "upload_time": "2016-03-02T21:41:44", "url": "https://files.pythonhosted.org/packages/1d/99/cce6b9454ec81047bf1a59f0e9a25bc238d4ac25ce6bfb0be1af03c29979/secretcrypt-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "a5b106a1b06a23a0817dd9d7f4517d1b", "sha256": "ae7c0973155311209adc39052aec87f0f8cb1b5d62e7e1eef32c68850caf6c2d" }, "downloads": -1, "filename": "secretcrypt-0.4.2.tar.gz", "has_sig": false, "md5_digest": "a5b106a1b06a23a0817dd9d7f4517d1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11072, "upload_time": "2016-03-04T13:00:02", "url": "https://files.pythonhosted.org/packages/a8/fe/9c8724f8177b1af59023578eebba59e1cf680aedc69df820556b0c6c3074/secretcrypt-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "ff262c47457c97cfaa557e9e39616eca", "sha256": "4c351a00ce41b1a6a5d02a3ff4efe02dd543084a18490dc0a9f6de13f22b4765" }, "downloads": -1, "filename": "secretcrypt-0.4.3.tar.gz", "has_sig": false, "md5_digest": "ff262c47457c97cfaa557e9e39616eca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9709, "upload_time": "2017-10-31T06:17:57", "url": "https://files.pythonhosted.org/packages/09/86/2439ee988b0338ed0cf6bf3b9881eeaa8656b445b2af9fcc008271e2b255/secretcrypt-0.4.3.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "49a7ddefcf557f4287b9e9c375ae4d26", "sha256": "7f1666f5c798bb30e2ffe2a6a5e805314130c65476f76063a5c2deb1ed1fa089" }, "downloads": -1, "filename": "secretcrypt-0.9.1-py2.7.egg", "has_sig": false, "md5_digest": "49a7ddefcf557f4287b9e9c375ae4d26", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 14852, "upload_time": "2017-10-31T06:18:02", "url": "https://files.pythonhosted.org/packages/2a/a5/8b0ba2b00c91fde1967a0f50d389d0601b48ad77cd2ce1d1d9561ca47d1e/secretcrypt-0.9.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "7f14a26046a881b5e912fcd025321699", "sha256": "9d1bdbd796c3b61b511367291f92bf4514da64502ae4b634d77b21571460010d" }, "downloads": -1, "filename": "secretcrypt-0.9.1.tar.gz", "has_sig": false, "md5_digest": "7f14a26046a881b5e912fcd025321699", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9804, "upload_time": "2017-03-28T09:52:14", "url": "https://files.pythonhosted.org/packages/14/38/c4ecbefbdbd49cc9a69fb91cd6170a19e2e8dfdf831e6261afe6d3a7cb23/secretcrypt-0.9.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d8055dba2cc0edfa0e0c8fabb0cd9836", "sha256": "34cf8f48f6fd52e5d2505881628a16228c68e56986228e79fe4e6fb678243310" }, "downloads": -1, "filename": "secretcrypt-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d8055dba2cc0edfa0e0c8fabb0cd9836", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10257, "upload_time": "2017-10-31T06:05:57", "url": "https://files.pythonhosted.org/packages/d5/08/c3ad93b8973df6970673d193a9b17ffddd9e991285692ef1084f7481c3d6/secretcrypt-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "6e9837b545a4e8f868f06db09e446b67", "sha256": "a2d2bafcd3c82c09bda445234016097a5768c428891aaa5e3636f83a1da28c22" }, "downloads": -1, "filename": "secretcrypt-1.0.1.tar.gz", "has_sig": false, "md5_digest": "6e9837b545a4e8f868f06db09e446b67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10291, "upload_time": "2017-10-31T06:20:45", "url": "https://files.pythonhosted.org/packages/55/6f/4ff6a4e4d1faa65467b4a0603f30b807b6ab44afa4400e8ec1cddc2bc15e/secretcrypt-1.0.1.tar.gz" } ], "1.0.1.dev0": [ { "comment_text": "", "digests": { "md5": "55f3700c2510055f06dc7a462ab7c884", "sha256": "03ae93d4249a6e831162ce308cd95160eb436795803428a0f84e842d915175ec" }, "downloads": -1, "filename": "secretcrypt-1.0.1.dev0-py2-none-any.whl", "has_sig": false, "md5_digest": "55f3700c2510055f06dc7a462ab7c884", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10468, "upload_time": "2017-10-31T06:17:56", "url": "https://files.pythonhosted.org/packages/44/85/54e15dd00593a08de0df8f1f17ac8b53686fc4e6934b54d1e8284df3bf5d/secretcrypt-1.0.1.dev0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18766b51ab9ce01875ca84a11dab4143", "sha256": "1b4bbbbc81167d523d6eacfdc18e7d68a0aeadf2824436591583239ebf8ec190" }, "downloads": -1, "filename": "secretcrypt-1.0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "18766b51ab9ce01875ca84a11dab4143", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10371, "upload_time": "2017-10-31T06:18:04", "url": "https://files.pythonhosted.org/packages/8c/ac/429f60acc3ef40264d8fd2b1db7ef0ef99314e400c38615df4a0342185cf/secretcrypt-1.0.1.dev0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "f40fcf71cfeab5216945cbbd70698ee2", "sha256": "cc0cde541f7533c96e4a558cd067ce7942f30d60f35021bd7c52754201f46028" }, "downloads": -1, "filename": "secretcrypt-1.0.2.tar.gz", "has_sig": false, "md5_digest": "f40fcf71cfeab5216945cbbd70698ee2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10342, "upload_time": "2017-10-31T14:24:11", "url": "https://files.pythonhosted.org/packages/00/b5/63b837712202475385afede3b50ccad321bee26bc3c876e99e136a713e95/secretcrypt-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "1aa608ff363ff4aa742161b2ad761754", "sha256": "44134d29dd79f8f26f3d8ec136f91543469e428280775c52b202f22199ca9cde" }, "downloads": -1, "filename": "secretcrypt-1.0.3.tar.gz", "has_sig": false, "md5_digest": "1aa608ff363ff4aa742161b2ad761754", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10376, "upload_time": "2017-11-02T21:43:00", "url": "https://files.pythonhosted.org/packages/8b/a9/af23df5be938fa57722f53ef846aefe53de0fbf48a05784e178752cea114/secretcrypt-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1aa608ff363ff4aa742161b2ad761754", "sha256": "44134d29dd79f8f26f3d8ec136f91543469e428280775c52b202f22199ca9cde" }, "downloads": -1, "filename": "secretcrypt-1.0.3.tar.gz", "has_sig": false, "md5_digest": "1aa608ff363ff4aa742161b2ad761754", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10376, "upload_time": "2017-11-02T21:43:00", "url": "https://files.pythonhosted.org/packages/8b/a9/af23df5be938fa57722f53ef846aefe53de0fbf48a05784e178752cea114/secretcrypt-1.0.3.tar.gz" } ] }