| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package app |
| |
| import ( |
| "signature" |
| |
| "v.io/v23/security" |
| "v.io/x/ref/services/wspr/internal/principal" |
| ) |
| |
| type Controller interface { |
| // NewServer instructs WSPR to create a server and start listening for calls on |
| // behalf of a JavaScript server. |
| NewServer(name string, serverId uint32, serverOpts []RpcServerOption) error |
| // Stop instructs WSPR to stop listening for calls for the |
| // given javascript server. |
| Stop(serverId uint32) error |
| // AddName adds a published name to an existing server. |
| AddName(serverId uint32, name string) error |
| // RemoveName removes a published name from an existing server. |
| RemoveName(serverId uint32, name string) error |
| |
| // Bless binds extensions of blessings held by this principal to |
| // another principal (represented by its public key). |
| Bless(publicKey []byte, blessings security.WireBlessings, extension string, caveat []security.Caveat) (principal.BlessingsId | error) |
| // BlessSelf creates a blessing with the provided name for this principal. |
| BlessSelf(name string, caveats []security.Caveat) (principal.BlessingsId | error) |
| // AddToRoots adds the provided blessing as a root. |
| AddToRoots(blessings security.WireBlessings) error |
| |
| // BlessingStoreSet puts the specified blessing in the blessing store under the provided pattern. |
| BlessingStoreSet(blessingsblessings security.WireBlessings, pattern security.BlessingPattern) (principal.BlessingsId | error) |
| // BlessingStoreForPeer retrieves the blessings marked for the given peers. |
| BlessingStoreForPeer(peerBlessings []string) (principal.BlessingsId | error) |
| // BlessingStoreSetDefault sets the default blessings. |
| BlessingStoreSetDefault(blessingsblessings security.WireBlessings) error |
| // BlessingStoreDefault fetches the default blessings for the principal of the controller. |
| BlessingStoreDefault() (principal.BlessingsId | error) |
| // BlessingStorePublicKey fetches the public key of the principal for which this store hosts blessings. |
| BlessingStorePublicKey() ([]byte | error) |
| // BlessingStorePeerBlessings returns all the blessings that the BlessingStore holds. |
| BlessingStorePeerBlessings() (map[security.BlessingPattern]principal.BlessingsId | error) |
| // BlessingStoreDebugString retrieves a debug string describing the state of the blessing store |
| BlessingStoreDebugString() (string | error) |
| |
| |
| // RemoteBlessings fetches the remote blessings for a given name and method. |
| RemoteBlessings(name, method string) ([]string | error) |
| // Signature fetches the signature for a given name. |
| Signature(name string) ([]signature.Interface | error) |
| } |