kms

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2023 License: Apache-2.0 Imports: 24 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	KMSType     Type
	Endpoint    string
	Region      string
	AliasPrefix string
	HTTPClient  *http.Client

	SecretLockKeyPath string
	DBType            string
	DBURL             string
	DBPrefix          string
}

Config configure kms that stores signing keys.

type Crypto

type Crypto interface {
	Sign(msg []byte, kh interface{}) ([]byte, error)
	SignMulti(messages [][]byte, kh interface{}) ([]byte, error)
	Decrypt(cipher, aad, nonce []byte, kh interface{}) ([]byte, error)
	Encrypt(msg, aad []byte, kh interface{}) ([]byte, []byte, error)
}

type KeyManager

type KeyManager struct {
	// contains filtered or unexported fields
}

func GetAriesKeyManager added in v1.1.0

func GetAriesKeyManager(keyManager keyManager, crypto Crypto, kmsType Type, metrics metricsProvider) *KeyManager

func NewAriesKeyManager

func NewAriesKeyManager(cfg *Config, metrics metricsProvider) (*KeyManager, error)

func (*KeyManager) CreateCryptoKey

func (km *KeyManager) CreateCryptoKey(keyType arieskms.KeyType) (string, interface{}, error)

func (*KeyManager) CreateJWKKey

func (km *KeyManager) CreateJWKKey(keyType arieskms.KeyType) (string, *jwk.JWK, error)

func (*KeyManager) Crypto

func (km *KeyManager) Crypto() Crypto

func (*KeyManager) NewVCSigner

func (km *KeyManager) NewVCSigner(
	creator string, signatureType vcsverifiable.SignatureType) (vc.SignerAlgorithm, error)

func (*KeyManager) SupportedKeyTypes

func (km *KeyManager) SupportedKeyTypes() []arieskms.KeyType

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

func NewRegistry

func NewRegistry(defaultVCSKeyManager VCSKeyManager) *Registry

func (*Registry) GetKeyManager

func (r *Registry) GetKeyManager(config *Config) (VCSKeyManager, error)

type Type

type Type string
const (
	AWS   Type = "aws"
	Local Type = "local"
	Web   Type = "web"
)

type VCSKeyManager

type VCSKeyManager interface {
	SupportedKeyTypes() []kms.KeyType
	CreateJWKKey(keyType kms.KeyType) (string, *jwk.JWK, error)
	CreateCryptoKey(keyType kms.KeyType) (string, interface{}, error)
	NewVCSigner(creator string, signatureType vcsverifiable.SignatureType) (vc.SignerAlgorithm, error)
}

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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