No description
Find a file
Samuel Dion-Girardeau a46fc40aa3 Improve string encoding for password retrieval
- Prevent the password from displaying as b'...' in the app;
 - Use Flask's `get_data(as_test=True)` to read the data, in the tests;
 - Add test to ensure `get_password` is not returning bytes.
2016-08-11 22:05:35 -04:00
snappass Improve string encoding for password retrieval 2016-08-11 22:05:35 -04:00
.bumpversion.cfg Prepare snappass for distribution. 2013-10-05 23:10:50 -07:00
.dockerignore Add Dockerfile/.dockerignore files 2016-07-18 17:37:54 -04:00
.gitignore Add virtualenv env/ to gitignore 2016-07-18 11:53:29 -07:00
.travis.yml Upgrade to new container travis infrastructure 2016-07-20 20:39:53 -07:00
AUTHORS.rst Prepare snappass for distribution. 2013-10-05 23:10:50 -07:00
CONTRIBUTING.rst Prepare snappass for distribution. 2013-10-05 23:10:50 -07:00
docker-compose.yml Add compose file for easy setup 2016-07-18 17:37:54 -04:00
Dockerfile Add Dockerfile/.dockerignore files 2016-07-18 17:37:54 -04:00
LICENSE Prepare snappass for distribution. 2013-10-05 23:10:50 -07:00
MANIFEST.in Prepare snappass for distribution. 2013-10-05 23:10:50 -07:00
README.rst Merge pull request #14 from pinterest/yongwen-patch-2 2016-07-19 14:39:11 -07:00
requirements.txt Prepare snappass for distribution. 2013-10-05 23:10:50 -07:00
setup.py Ensure the egg is a directory, not a zip 2016-07-18 17:37:54 -04:00
tests.py Improve string encoding for password retrieval 2016-08-11 22:05:35 -04:00
tox.ini Prepare snappass for distribution. 2013-10-05 23:10:50 -07:00

========
SnapPass
========

.. image:: https://travis-ci.org/pinterest/snappass.png


It's like SnapChat... for Passwords.

This is a webapp that lets you share passwords securely.

Let's say you have a password.  You want to give it to your coworker, Jane.
You could email it to her, but then it's in her email, which might be backed up,
and probably is in some storage device controlled by the NSA.

You could send it to her over chat, but chances are Jane logs all her messages
because she uses Google Talk, and Google Talk logs everything.

You could write it down, but you can't find a pen, and there's way too many
characters because your Security Person, Paul, is paranoid.

So we built SnapPass.  It's not that complicated, it does one thing.  If
Jane gets a link to the password and never looks at it, the password goes away.
If the NSA gets a hold of the link, and they look at the password... well they
have the password.  Also, Jane can't get the password, but now Jane knows that
not only is someone looking in her email, they are clicking on links.

Anyway, this took us very little time to write, but we figure we'd save you the
trouble of writing it yourself, because maybe you are busy and have other things
to do.  Enjoy.

Requirements
------------

* Redis.
* Python 2.6, 2.7 or 3.3.

Installation
------------

::

    $ pip install snappass
    $ snappass
    * Running on http://0.0.0.0:5000/
    * Restarting with reloader

Configuration
-------------

You can configure the following via environment variables.

`SECRET_KEY` this should be a unique key that's used to sign key.  This should
be kept secret.  See the `Flask Documentation`_ for more information.

.. _Flask Documentation: http://flask.pocoo.org/docs/quickstart/#sessions

`STATIC_URL` this should be the location of your static assets.  You might not
need to change this.

`NO_SSL` if you are not using SSL.

`REDIS_HOST` this should be set by Redis, but you can override it if you want. Defaults to `"localhost"`

Docker
------

Alternatively, you can use `Docker`_ and `Docker Compose`_ to install and run SnapPass:

.. _Docker: https://www.docker.com/
.. _Docker Compose: https://docs.docker.com/compose/
::

    $ docker build -t snappass .
    $ docker-compose up -d

This will pull all dependencies, i.e. Redis and appropriate Python version (3.3), then start up snappass and Redis server. SnapPass server is accessible at: http://localhost:5000