Documentation ¶
Index ¶
- type Key
- type KeyManager
- type KeyType
- type MultiKeyManager
- type Repository
- type SVIDKeyManager
- type SingleKeyManager
- type V0
- type V1
- func (v1 V1) GenerateKey(ctx context.Context, id string, keyType KeyType) (Key, error)
- func (v1 V1) GetKey(ctx context.Context, id string) (Key, error)
- func (v1 V1) GetKeys(ctx context.Context) ([]Key, error)
- func (v1 *V1) Multi() (MultiKeyManager, bool)
- func (v1 *V1) Single() (SingleKeyManager, bool)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type KeyManager ¶
type KeyManager interface { catalog.PluginInfo // Single returns the single key manager provided by the plugin or false // if not supported. A plugin will support either the single or the multi // key manager. Single() (SingleKeyManager, bool) // Multi returns the multi key manager provided by the plugin or false // if not supported. A plugin will support either the single or the multi // key manager. Multi() (MultiKeyManager, bool) }
KeyManager provides either a single or multi-key key manager
type KeyType ¶ added in v1.0.0
type KeyType int
KeyType represents the types of keys that are supported by the KeyManager.
func (KeyType) GenerateSigner ¶ added in v1.0.0
GenerateSigner generates a new key for the given key type
type MultiKeyManager ¶ added in v1.0.0
type MultiKeyManager interface { catalog.PluginInfo // GenerateKey generates a key with the given ID and key type. If a key // with that ID already exists, it is overwritten. GenerateKey(ctx context.Context, id string, keyType KeyType) (Key, error) // GetKey returns the key with the given ID. If a key with that ID does // not exist, a status of codes.NotFound is returned. GetKey(ctx context.Context, id string) (Key, error) // GetKeys returns all keys managed by the KeyManager. GetKeys(ctx context.Context) ([]Key, error) }
MultiKeyManager manages multiple keys for the agent
type Repository ¶ added in v1.0.0
type Repository struct {
KeyManager KeyManager
}
func (*Repository) Clear ¶ added in v1.0.0
func (repo *Repository) Clear()
func (*Repository) GetKeyManager ¶ added in v1.0.0
func (repo *Repository) GetKeyManager() KeyManager
func (*Repository) SetKeyManager ¶ added in v1.0.0
func (repo *Repository) SetKeyManager(keyManager KeyManager)
type SVIDKeyManager ¶ added in v1.0.0
type SVIDKeyManager interface { GenerateKey(ctx context.Context, currentKey Key) (Key, error) GetKeys(ctx context.Context) ([]Key, error) SetKey(ctx context.Context, key Key) error }
SVIDKeyManager is a wrapper around the key manager specifically used for managing the agent SVID. This is more or less a short term shim until we can remove support for the v0 plugins and no longer have to adapt SVID storage to both the "single" and "multi" key manager.
func ForSVID ¶ added in v1.0.0
func ForSVID(km KeyManager) SVIDKeyManager
type SingleKeyManager ¶ added in v1.0.0
type SingleKeyManager interface { catalog.PluginInfo // GenerateKey generates a temporary key. It will not be the key returned // by GetKey until after SetKey has been called. GenerateKey(ctx context.Context) (crypto.Signer, error) // GetKey returns a Key previously set with SetKey. GetKey(ctx context.Context) (crypto.Signer, error) // SetKey sets the key that is returned by GetKey. SetKey(ctx context.Context, key crypto.Signer) error }
SingleKeyManager provides a signing key for the agent
type V0 ¶ added in v1.0.0
type V0 struct { plugin.Facade keymanagerv0.KeyManagerPluginClient }
func (*V0) GenerateKey ¶ added in v1.0.0
func (*V0) Multi ¶ added in v1.0.0
func (v0 *V0) Multi() (MultiKeyManager, bool)
func (*V0) Single ¶ added in v1.0.0
func (v0 *V0) Single() (SingleKeyManager, bool)
type V1 ¶ added in v1.0.0
type V1 struct { plugin.Facade keymanagerv1.KeyManagerPluginClient }
func (V1) GenerateKey ¶ added in v1.0.0
func (*V1) Multi ¶ added in v1.0.0
func (v1 *V1) Multi() (MultiKeyManager, bool)
func (*V1) Single ¶ added in v1.0.0
func (v1 *V1) Single() (SingleKeyManager, bool)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.