veyron/security/agent: Make the agent a pricipal.

* The private key for the principal will have to be in a file named
privatekey.pem located in the directory VEYRON_CREDENTIALS.
* Agent server will have a underlying pricipal.
* Agent client makes rpcs to server to act as a principal.

Change-Id: I29d69c0bfbae4ef3c7530f6a4636b304d56c9cf3
diff --git a/security/agent/server/wire.vdl b/security/agent/server/wire.vdl
index 9d06e4b..6ef6f8e 100644
--- a/security/agent/server/wire.vdl
+++ b/security/agent/server/wire.vdl
@@ -1,11 +1,24 @@
 package server
 
 import (
-	"veyron.io/veyron/veyron2/security"
-	"veyron.io/veyron/veyron2/security/wire"
+  "veyron.io/veyron/veyron2/security"
 )
 
 type Agent interface {
-	Sign(message []byte) (security.Signature, error)
-	PublicKey() (wire.PublicKey, error)
+  Bless(key []byte, wit security.WireBlessings, extension string, caveat security.Caveat, additionalCaveats []security.Caveat) (security.WireBlessings, error)
+  BlessSelf(name string, caveats []security.Caveat) (security.WireBlessings, error)
+  Sign(message []byte) (security.Signature, error)
+  MintDischarge(tp any, caveat security.Caveat, additionalCaveats []security.Caveat) (any, error)
+  PublicKey() ([]byte, error)
+  AddToRoots(blessing security.WireBlessings) error
+
+  BlessingStoreSet(blessings security.WireBlessings, forPeers security.BlessingPattern) (security.WireBlessings, error)
+  BlessingStoreForPeer(peerBlessings []string) (security.WireBlessings, error)
+  BlessingStoreSetDefault(blessings security.WireBlessings) error
+  BlessingStoreDefault() (security.WireBlessings, error)
+  BlessingStoreDebugString() (string, error)
+
+  BlessingRootsAdd(root []byte, pattern security.BlessingPattern) error
+  BlessingRootsRecognized(root []byte, blessing string) error
+  BlessingRootsDebugString() (string, error)
 }