Giter Club home page Giter Club logo

simplekey's Introduction

Simplekey is set of shell scripts to try to simplify what can be the very confusing process of using GnuPG.

In order to simplify things, by necessity it's very opinionated about the "right" way to use GnuPG.

There are scads of options presented by OpenPGP, which are all part of making it the flexible and powerful an encryption framework that it is. But it's extremely complicated to get started with, and that quite reasonable puts people off.

The philosophic goals here are these:

  1. Make PGP as easy to use as possible. The more people using strong encryption, the better for everyone. One of the big hang ups right now is that the PGP tools are difficult to use - moreso than they strictly have to be.
  2. Make the interface itself auditable. This is why this is presented as shell scripts rather than a web service or a GUI. If you're concerned about what Simplekey does, open up the files and read them, or have someone you trust read them.
  3. Build a guide forward. The simplified interface provided here should be good to get started with, and with luck many users will find they never need anything beyond what Simplekey provides. If you find that you need to do something more, though, the goal is that you have a foundation to start with, and some direction on how to proceed.

Requirements

You'll need gnupg2 installed. Most Linux distros have some variant of

apt-get install gnupg

Mac OS X users with homebrew installed can do

brew install gnupg2

Or else install the full GPGTools suite.

Whatever package you install will need to include gpg and gpgconf.

You'll also need sh, grep and sed. I only mention that because the requirements have been made intentionally as light as possible.

Usage:

Simplekey presents a series of subcommands. At present there are:

./simplekey help [command]
./simplekey seal <plaintext> <for>
./simplekey open <encrypted>
./simplekey generate <name> <email> <comment>

Those are the day to day "encrypt-sign" and "verify-decrypt" operations.

Planned are:

./simplekey configure
./simplekey trust <users key>
./simplekey revoke

These should be the minimal set required to use GPG effectively.

Considered for inclusion:

./simplekey sign <file> #detached signature

./simplekey affirm <account> #produce an signed affirmation
./simplekey verify <affirmation> #check a signed affirmation

Related topics

Public key encryption is a fascinating space. It represents a fusion between challenging math and logic and human interactions which probably can't be globally "solved." There are a number of problems that simplekey doesn't yet approach, simply because it isn't yet clear that it should. For instance:

  • Low confidence key verification via online identities. (But see affirms/)
  • Higher security "detached" master keys.
  • Key signing parties

License

This repository consists entirely of code specifically put into the public domain.

Contribution

I'm eagerly hoping for outside review and contribution to this project. The goals outlined in the introduction are inflexible, though.

Furthermore, be aware that the act of issuing a Pull Request to this repository constitutes a contribution of the work in the Pull Request into the public domain.

simplekey's People

Contributors

nyarly avatar khagler avatar idupree avatar

Watchers

Christian Heinrich avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.