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)
}