keystore

package
v4.0.0-...-b8b0360 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2024 License: GPL-3.0 Imports: 23 Imported by: 0

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 dilithium.PublicKey // Represents the public key of the user.

	SecretKey dilithium.DilithiumKey // 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 NewKeyFromDilithium

func NewKeyFromDilithium(dilithiumKey dilithium.DilithiumKey) (*Key, error)

NewKeyFromDilithium creates a new keystore Key type using a Dilithium 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

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

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

func (Keystore) GetKey

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

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

func (Keystore) GetKeys

func (_ 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

func (ks Keystore) JoinPath(filename string) string

JoinPath joins the filename with the keystore directory path.

func (Keystore) StoreKey

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