{ "info": { "author": "Kyle Kelley", "author_email": "rgbkrk@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Security :: Cryptography" ], "description": "# CryptHub\n\n[![Build Status](https://magnum.travis-ci.com/rgbkrk/hubcrypt.png?token=zrnzC1rKNTsStESZRWcJ&branch=master)](https://magnum.travis-ci.com/rgbkrk/hubcrypt)\n\n:closed_lock_with_key: for your :octocat:\n\n## Summary\n\nEncrypt [\\*](https://github.com/rgbkrk/hubcrypt/blob/master/README.md#-maximum-message-size-is-based-on-key-size)short messages using a GitHub user's public key.\n\n### Encryption:\n\n```shell\n$ ./bin/hubencrypt smashwilson secrets.txt secrets.txt.enc\nGetting the key for smashwilson\nConverting public key to a PEM PKCS8 public key\nEncrypting message\nAll done, cleaning up!\n```\n\n### Decryption:\n\n```shell\n$ ./bin/hubdecrypt ~/.ssh/id_rsa secrets.txt.enc secrets.txt\nEnter pass phrase for /home/ash/.ssh/id_rsa:\n$ cat secrets.txt\nDrink more ovaltine.\n```\n\n## About\n\nhubcrypt relies on the fact that you (probably) already have public and private keypairs, the public keys of which are readily accessible through GitHub's API. You use them to push code and log in to servers. They're not limited to those tasks though, as they can be used to encrypt arbitrary data.\n\nNormally public keys are used to encrypt a randomly generated session key for use with a symmetric encryption algorithm. The big reason is that asymmetric encryption is typically much slower than symmetric encryption. [PGP](http://en.wikipedia.org/wiki/Pretty_Good_Privacy#Design) for instance uses this exact scheme.\n\nJokingly, I said to someone that if they wanted to share a small secret with another GitHub user they could just encrypt them with their public SSH key. So, [hubcrypt was born as a gist](https://gist.github.com/rgbkrk/7827691).\n\nShortly after I found out that [others](https://github.com/twe4ked/catacomb) had done [variations on this](https://github.com/jschauma/jass) before. Not surprised, I'm always late to the party.\n\nYou could of course use GPG and convince the other person you're communicating with to use GPG as well. Or you could just use the SSH keys you already have to encrypt a message. Sure beats sending it over plain.\n\n## Requirements\n\nThe recipient needs to be using an RSA key and have it listed as the last key on `github.com/.keys`. Linux and OS X before Mavericks should work well.\n\nIf your machine doesn't support ssh-keygen properly, submit an issue and I'll bemoan that I don't have a box to test it on for you. Feel free to send us a brand new laptop to test your flavor of operating system with.\n\n## Example Usage\n\n```shell\n$ git clone https://github.com/rgbkrk/hubcrypt.git\n$ ./hubcrypt/bin/hubencrypt smashwilson secrets.txt secrets.txt.enc\nGetting the key for smashwilson\nConverting public key to a PEM PKCS8 public key\nEncrypting message\nAll done, cleaning up!\n```\n\nLater, on [smashwilson](https://github.com/smashwilson)'s computer:\n\n```shell\n$ git clone https://github.com/rgbkrk/hubcrypt.git\n$ ./hubcrypt/bin/hubdecrypt ~/.ssh/id_rsa secrets.txt.enc secrets.txt\nEnter pass phrase for /home/ash/.ssh/id_rsa:\n$ cat secrets.txt\nDrink more ovaltine.\n```\n\nYou can copy the shell scripts to wherever you like, then it's simply a matter of running `hubencrypt` and `hubdecrypt`.\n\nAlternatively, just steal the `openssl` and `ssh-keygen` commands and roll like a boss. You will miss out on the ever so insightful error messages.\n\n## \\* Maximum Message size (is based on key size)\n\nThe typical key size when people run `ssh-keygen` is 2048 bits. You can make that beefier or leaner at your own discretion. The user's choice in keysize affects the size of the message you can send them.\n\n```\nKey size (bits) Maximum Message Size (bytes)\n768 85\n1024 117\n2048 246\n4096 502\n8192 1018\n```\n\n\n\n\n# 0.0.0 (2013-12-8)\n\n* Conception", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/rgbkrk/crypthub", "keywords": null, "license": "Copyright 2013 Kyle Kelley\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.", "maintainer": null, "maintainer_email": null, "name": "crypthub", "package_url": "https://pypi.org/project/crypthub/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/crypthub/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/rgbkrk/crypthub" }, "release_url": "https://pypi.org/project/crypthub/0.0.0-dev/", "requires_dist": null, "requires_python": null, "summary": "Encrypt messages using a GitHub user's public key.", "version": "0.0.0-dev" }, "last_serial": 940153, "releases": { "0.0.0-dev": [] }, "urls": [] }