Fluidkeys

Prototyping a CLI for Fluidkeys

We're working on the interface for the command line for Fluidkeys.

Running Fluidkeys for the first time

We're assuming this is someone who's security conscious, prehaps a developer or a sysadmin at an organisation.

  ~ fk

Start with a key locker
====
In Fluidkeys, everything starts with a locker. This is the place you and others
in your organisation place their keys for safe keeping.

Is your group already using Fluidkeys?

1. Find your Fluidkeys locker 🔎
2. Create a new locker ✨

[1/2] : _

Creating a new locker \... [done]

We'll now store your key in the new locker and set you up as an adminsitrator

Found GnuPGP, would you like to import an existing key from there?  [Y/n] _

We'll only look for secret/public pairings...

Two secret keys found in GnuPG:

1.  Ian Drysdale <idrysdale@example.com> [expires: 2019-07-05]
    93AE 4365 5BB8 FF24 B021  1685 FD06 24C5 C179 7053

2.  <idrysdale@Fluidkeys.com> [expires: 2019-07-05]
    BBA5 A835 6280 E0C5 9BDA  6C96 CC3C FF4A 2698 0C2A

Which key would you like to import: [1/2] _
Analysing key against best practices...
    Ensuring key is a good size... [done]
    Cipher preferences configured correctly... [done]
Importing key into locker... [done]

All setup ✅
====
You can invite team members to join this locker by asking them to download fk
and using the following invite code:

    truss.exhale.kindle.rivet.amino

Once they join, you'll still have to authorize their access.

  ~ _

If Fluidkeys doesn't find GnuPG

First you'll need to create a key.

Enter your email address, this will help other people find your key.

[email] : _
This is your password:

cube.suitcase.walmart.compactor.backpack.barbell

* If you use a password manager, save it there now
* Otherwise write it on a piece of paper and keep it with you

Press enter when you've written it down. _
Enter the 3rd word from your password

[3rd word] : _
Generating key for idrysdale@example.com... [done]
Backing up key to '/Users/idrysdale/.config/fluidkeys'... [done]
Importing key into GnuPG... [done]
Importing key into Fluidkeys locker... [done]

All setup ✅
====
You can invite team members to join this locker by asking them to download fk
and using the following invite code:

    truss.exhale.kindle.rivet.amino

Once they join, you'll still have to authorize their access.

  ~ _

Key management

  ~ fk keys
NAME:
 fk keys - Manage your keys

USAGE:
 fk keys <command>

COMMANDS:
 remove	  Remove a key
 list     List keys
 create   Create a new key
 help, h  Shows a list of commands or help for one command

  ~ fk keys list
Email address           Created                Status
==========              ==========             ==========
idrysdale@example.com   2018 Aug 16 10:27:10   Good

  ~ fk key idrysdale@example.com inspect
Email address : idrysdale@example.com
Fingerprint   : BF73 8C31 C237 1948 FD0A  0FDC 926A 8DE8 9CCF DD9B
Last rotated  : 2018 Aug 16 10:27:10

  ~ fk key idrysdale@example.com clip-public
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBFs99GcBEADUaZ5oYVLO05yGfWtdTzLWRdkeiw0GxQlvh4kNvNBfxlUzed3e
rbbsXErwEYwLeZOusTdEhP9Sob1zZD9xGT1Lj0fAM20MtrjXhKru5x9nzYuWHccR
6Nb1agCGdaW1ve9OqzLQzMpxOB0GSZzrsLHstM2X8xwobOj3TnZZ0sDvhRCBGEA+
H1bYxjawYGQg+f... Copied to clipboard 📋

  ~ _

Errors

Before exiting `fk` we should strive to provide users with a clear and consise message as to why.

[!] Expected to find 'db.json' in './config/fastlane'
  ~ _