keymanagerbase

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SortKeyEntries

func SortKeyEntries(entries []*KeyEntry)

Types

type Base

type Base struct {
	keymanagerv1.UnsafeKeyManagerServer
	// contains filtered or unexported fields
}

Base is the base KeyManager implementation

func New

func New(config Config) *Base

New creates a new base key manager using the provided config.

func (*Base) GenerateKey

GenerateKey implements the KeyManager RPC of the same name.

func (*Base) GetPublicKey

GetPublicKey implements the KeyManager RPC of the same name.

func (*Base) GetPublicKeys

GetPublicKeys implements the KeyManager RPC of the same name.

func (*Base) SetEntries

func (m *Base) SetEntries(entries []*KeyEntry)

SetEntries is used to replace the set of managed entries. This is generally called by implementations when they are first loaded to set the initial set of entries.

func (*Base) SignData

SignData implements the KeyManager RPC of the same name.

type Config

type Config struct {
	// Generator is an optional key generator.
	Generator Generator

	// WriteEntries is an optional callback used to persist key entries
	WriteEntries func(ctx context.Context, entries []*KeyEntry) error
}

Config is a collection of optional callbacks. Default implementations will be used when not provided.

type Generator

type Generator interface {
	GenerateRSA2048Key() (*rsa.PrivateKey, error)
	GenerateRSA4096Key() (*rsa.PrivateKey, error)
	GenerateEC256Key() (*ecdsa.PrivateKey, error)
	GenerateEC384Key() (*ecdsa.PrivateKey, error)
}

Generator is a key generator

type KeyEntry

type KeyEntry struct {
	PrivateKey crypto.Signer
	*keymanagerv1.PublicKey
}

KeyEntry is an entry maintained by the key manager

func MakeKeyEntryFromKey

func MakeKeyEntryFromKey(id string, privateKey crypto.PrivateKey) (*KeyEntry, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL