{ "info": { "author": "David Carboni", "author_email": "david@carboni.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.2", "Topic :: Security :: Cryptography" ], "description": "| [Java](https://github.com/davidcarboni/cryptolite-java \"Java implementation\") | [Python](https://github.com/davidcarboni/cryptolite-python \"Python implementation\") | [Go](https://github.com/davidcarboni/cryptolite \"Go implementation\") | \n| ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |\n| [![Build Status](https://travis-ci.org/davidcarboni/cryptolite-java.svg?branch=master)](https://travis-ci.org/davidcarboni/cryptolite-java) | [![Build Status](https://travis-ci.org/davidcarboni/cryptolite-python.svg?branch=master)](https://travis-ci.org/davidcarboni/cryptolite-python) | [![Build Status](https://travis-ci.org/davidcarboni/cryptolite.svg?branch=master)](https://travis-ci.org/davidcarboni/cryptolite) |\n\n\nCryptolite\n----------\n\n\n### What is it?\n\nCryptolite is a wrapper for standard crypto libraries, providing a simpler user experience. The goal is to make \"right\" cryptography straightforward by taking away the options, making it harder to get cryptography wrong. It's \"lite\" as in \"easy to use\", not as in \"less powerful\". This means Cryptolite does serious cryptography with a handful of API methods and goes to some length to help you understand how to use the basic building blocks - keys, key pairs, encryption, digital signatures, key exchange and key wrapping, and a couple of useful extras including password generation and hashing.\n\nCryptolite doesn't do any cryptography itself. Instead it relies on trusted implementations to do the heavy lifting. The API is focused on providing the things you're likely to need as a developer, especially for web apps and microservices - hashing passwords, generating random IDs, encrypting and digitally signing Strings and Files and managing keys safely.\n\nNo options means under the covers it just does what's most appropriate - and if necessary pragmatic - enabling you to use cryptography without having to research it in depth. For example, did you know that using AES in ECB mode is a bad idea? Neither did I when I started. I wrote Cryptolite to take care of it. (http://www.codinghorror.com/blog/2009/05/why-isnt-my-encryption-encrypting.html)\n\n\n### See it in action\n\nIf you'd like to see a showcase app I put together with Cryptolite, have a look at https://cryptonite.herokuapp.com (it may take a while to load - it's a Heroku thing). Cryptonite also provides Encryption-as-a-service: https://cryptonite.herokuapp.com/api\n\n\n### Why release it?\n\nTo share what I believe to be a valuable by-product of my first startup, Workdocx with the community, (inspired by 37signals: http://37signals.com/svn/posts/1620-sell-your-by-products).\n\nThe Cryptolite library was developed to provide security for the Workdocx service and is the result of many hours of research and coding work I did to keep our users safe online.\n\nFor the community, the hope is that this will make it such a no-brainer to use good cryptography that more and more people will get it right by default. Keeping it small and opening the source code makes it easy to see how to make use of the JCE in ways not provided for by Cryptolite, so let me know via pull request if you'd like to feed something back in.\n\n\n### Thanks go to..\n\nMuch of the inspiration for the algorithms, modes and parameters comes from http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html. Additional research is from good old Wikipedia, as well as a bunch of other sites offering advice, including Coding Horror, above. JCE bootstrapping is from Beginning Cryptography With Java (http://www.wrox.com/WileyCDA/WroxTitle/Beginning-Cryptography-with-Java.productCd-0764596330.html), and many thanks go to the guys at BouncyCastle for their JCE provider (http://www.bouncycastle.org/).\n\n\n### Licensing:\n\nThis library is released under the MIT license, like many other libraries, which means you are free to use it in commercial products.\n\nIf you have any questions, feel free to contact me via Twitter [@davidcarboni](https://twitter.com/davidcarboni) or find me on Medium as [davidcarboni](https://medium.com/@davidcarboni).\n\nDavid Carboni", "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/davidcarboni/cryptolite/tree/python", "keywords": "cryptography,encryption,digital signature,key generation,key management", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Cryptolite", "package_url": "https://pypi.org/project/Cryptolite/", "platform": "", "project_url": "https://pypi.org/project/Cryptolite/", "project_urls": { "Homepage": "https://github.com/davidcarboni/cryptolite/tree/python" }, "release_url": "https://pypi.org/project/Cryptolite/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "Simple, \"right\" cryptography.", "version": "0.0.3" }, "last_serial": 3827902, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "74ba63a54fa5ce4b459eec9de4f7ec93", "sha256": "8b14515c24aeae602ec3b28fd92cab46288b2e0c2ef18e9dcc074bee6cdd223e" }, "downloads": -1, "filename": "Cryptolite-0.0.1.tar.gz", "has_sig": false, "md5_digest": "74ba63a54fa5ce4b459eec9de4f7ec93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8977, "upload_time": "2018-05-02T17:05:58", "url": "https://files.pythonhosted.org/packages/bb/cb/9545d4bca72135d7e252ce43092b19104d8ec0b650f15426de66d774b01a/Cryptolite-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "fcec90bbd39240c797d47118f3080961", "sha256": "edad07d92040efa592cb925bae14e66020b89f91d5c3e363b5d0fa3fbcc58ece" }, "downloads": -1, "filename": "Cryptolite-0.0.2.tar.gz", "has_sig": false, "md5_digest": "fcec90bbd39240c797d47118f3080961", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11155, "upload_time": "2018-05-02T17:24:31", "url": "https://files.pythonhosted.org/packages/63/9f/7fd0ffc2f3416628907c407ad2d6112517f117f0f86faf87328ae22c6dd9/Cryptolite-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "e76c4583a871949b5ce21a43869a5392", "sha256": "e93dda356a8323a3a09d05083e5d6a822ea6ca3619f404c93e303f2b0d1c0ce1" }, "downloads": -1, "filename": "Cryptolite-0.0.3.tar.gz", "has_sig": false, "md5_digest": "e76c4583a871949b5ce21a43869a5392", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10926, "upload_time": "2018-05-02T17:36:18", "url": "https://files.pythonhosted.org/packages/d3/fa/7bfdc54ace720b57a90a1b54c23a7ce69eaf95f532255fdd473f2205eb41/Cryptolite-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e76c4583a871949b5ce21a43869a5392", "sha256": "e93dda356a8323a3a09d05083e5d6a822ea6ca3619f404c93e303f2b0d1c0ce1" }, "downloads": -1, "filename": "Cryptolite-0.0.3.tar.gz", "has_sig": false, "md5_digest": "e76c4583a871949b5ce21a43869a5392", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10926, "upload_time": "2018-05-02T17:36:18", "url": "https://files.pythonhosted.org/packages/d3/fa/7bfdc54ace720b57a90a1b54c23a7ce69eaf95f532255fdd473f2205eb41/Cryptolite-0.0.3.tar.gz" } ] }