veyron/tools/principal: Commands to easily send/receive blessings
remotely.

With this commit, the command line tool can be used to bootstrap
blessings of new principals being setup on remote machines.

Usage:
- On the machine where the new principal is being setup:
  principal recvblessings
- Copy and paste the command printed by the above invocation
  (after changing any flags to change caveats) on the machine hosting
  the principal that should send the blessings.

Care is taken to ensure that both the sender and receiver "authenticate"
each other (using public keys or a randomly generated token) to prevent
the blessings being sent to or received from even active network
attackers.

This was motivated by some use-cases seen "on the field", for example:
- Jiri setting up a GCE host using veyron tunneling
- Robin setting up binaryd and applicationd with identities blessed
  from the "veyron-test" root on GCE.

While at it, also made output of BlessingRoots.DebugString stable.

Change-Id: I145409070e5eb68e928bdd1b5cfa5182c417a952
3 files changed
tree: 3e54eb76dc9cf8bb2d3f8691390f4d27011ef7f5
  1. lib/
  2. profiles/
  3. runtimes/
  4. security/
  5. services/
  6. tools/