keystore

package
v1.4.4 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2021 License: GPL-3.0 Imports: 23 Imported by: 32

Documentation

Index

Constants

View Source
const (

	// LightScryptN is the N parameter of Scrypt encryption algorithm, using 4MB
	// memory and taking approximately 100ms CPU time on a modern processor.
	LightScryptN = 1 << 12

	// LightScryptP is the P parameter of Scrypt encryption algorithm, using 4MB
	// memory and taking approximately 100ms CPU time on a modern processor.
	LightScryptP = 6
)

Variables

View Source
var (
	// ErrDecrypt is the standard error message when decryption is a failure.
	ErrDecrypt = errors.New("could not decrypt key with given passphrase")
)

Functions

func EncryptKey

func EncryptKey(key *Key, password string, scryptN, scryptP int) ([]byte, error)

EncryptKey encrypts a key using the specified scrypt parameters into a JSON blob that can be decrypted later on.

func Keccak256

func Keccak256(data ...[]byte) []byte

Keccak256 calculates and returns the Keccak256 hash of the input data.

Types

type Key

type Key struct {
	ID uuid.UUID // Version 4 "random" for unique id not derived from key data

	PublicKey bls.PublicKey // Represents the public key of the user.

	SecretKey bls.SecretKey // Represents the private key of the user.
}

Key is the object that stores all the user data related to their public/secret keys.

func DecryptKey

func DecryptKey(keyJSON []byte, password string) (*Key, error)

DecryptKey decrypts a key from a JSON blob, returning the private key itself.

func NewKey

func NewKey() (*Key, error)

NewKey generates a new random key.

func NewKeyFromBLS

func NewKeyFromBLS(blsKey bls.SecretKey) (*Key, error)

NewKeyFromBLS creates a new keystore Key type using a BLS private key.

func (*Key) MarshalJSON

func (k *Key) MarshalJSON() (j []byte, err error)

MarshalJSON marshals a key struct into a JSON blob.

func (*Key) UnmarshalJSON

func (k *Key) UnmarshalJSON(j []byte) (err error)

UnmarshalJSON unmarshals a blob into a key struct.

type Keystore added in v1.0.0

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

Keystore defines a keystore with a directory path and scrypt values.

func (Keystore) GetKey added in v1.0.0

func (ks Keystore) GetKey(filename, password string) (*Key, error)

GetKey from file using the filename path and a decryption password.

func (Keystore) GetKeys added in v1.0.0

func (ks Keystore) GetKeys(directory, filePrefix, password string, warnOnFail bool) (map[string]*Key, error)

GetKeys from directory using the prefix to filter relevant files and a decryption password.

func (Keystore) JoinPath added in v1.0.0

func (ks Keystore) JoinPath(filename string) string

JoinPath joins the filename with the keystore directory path.

func (Keystore) StoreKey added in v1.0.0

func (ks Keystore) StoreKey(filename string, key *Key, auth string) error

StoreKey in filepath and encrypt it with a password.

Jump to

Keyboard shortcuts

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