tss

package
v1.128.2 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2024 License: MIT Imports: 47 Imported by: 9

Documentation

Index

Constants

View Source
const (
	// AgeWorkFactor is the work factor used for encryption:
	// https://pkg.go.dev/filippo.io/age#ScryptRecipient.SetWorkFactor
	// NOTE: Periodically re-evaluate and increase work factor as needed.
	AgeWorkFactor = 18

	// Salts are used before hashing the passphrase for each layer of encryption.
	SaltAge    = 1
	SaltAES    = 2
	SaltChaCha = 3
)
View Source
const MinimumMnemonicEntropy = 3.67

MinimumMnemonicEntropy was determined by checking the minimum entropy of 1e8 uniquely generated BIP39 mnemonics. In all likelihood, a validator mnemonic should not have a lower entropy value.

Variables

This section is empty.

Functions

func DecryptKeyshares added in v1.106.0

func DecryptKeyshares(encrypted []byte, passphrase string) ([]byte, error)

EncryptKeyshares decrypts the provided encrypted keyshares using the passphrase.

func EncryptKeyshares added in v1.106.0

func EncryptKeyshares(path, passphrase string) ([]byte, error)

EncryptKeyshares encrypts the keyshares at the provided path using the passphrase.

func RecoverKeyShares added in v1.106.0

func RecoverKeyShares(conf config.Bifrost, thorchain thorclient.ThorchainBridge) error

Types

type CryptoJSON added in v1.128.0

type CryptoJSON struct {
	Cipher       string                 `json:"cipher"`
	CipherText   string                 `json:"ciphertext"`
	CipherParams cipherparamsJSON       `json:"cipherparams"`
	KDF          string                 `json:"kdf"`
	KDFParams    map[string]interface{} `json:"kdfparams"`
	MAC          string                 `json:"mac"`
}

type EncryptedKeyJSON added in v1.128.0

type EncryptedKeyJSON struct {
	Address string     `json:"address"`
	Crypto  CryptoJSON `json:"crypto"`
	Id      string     `json:"id"`
	Version int        `json:"version"`
}

type KeyGen

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

KeyGen is

func NewTssKeyGen

func NewTssKeyGen(keys *thorclient.Keys, server *tss.TssServer, bridge thorclient.ThorchainBridge) (*KeyGen, error)

NewTssKeyGen create a new instance of TssKeyGen which will look after TSS key stuff

func (*KeyGen) GenerateNewKey

func (kg *KeyGen) GenerateNewKey(keygenBlockHeight int64, pKeys common.PubKeys) (pk common.PubKeySet, blame types.Blame, err error)

type KeySign

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

KeySign is a proxy between signer and TSS

func NewKeySign

func NewKeySign(server tssServer, bridge thorclient.ThorchainBridge) (*KeySign, error)

NewKeySign create a new instance of KeySign

func (*KeySign) ExportAsKeyStore

func (s *KeySign) ExportAsKeyStore(password string) (*EncryptedKeyJSON, error)

ExportAsKeyStore THORNode don't need this function for TSS, just keep it to fulfill KeyManager interface

func (*KeySign) ExportAsMnemonic

func (s *KeySign) ExportAsMnemonic() (string, error)

ExportAsMnemonic THORNode don't need this function for TSS, just keep it to fulfill KeyManager interface

func (*KeySign) ExportAsPrivateKey

func (s *KeySign) ExportAsPrivateKey() (string, error)

ExportAsPrivateKey THORNode don't need this function for TSS, just keep it to fulfill KeyManager interface

func (*KeySign) GetAddr

func (s *KeySign) GetAddr() sdkTypes.AccAddress

func (*KeySign) GetPrivKey

func (s *KeySign) GetPrivKey() crypto.PrivKey

GetPrivKey THORNode don't actually have any private key , but just return something

func (*KeySign) RemoteSign

func (s *KeySign) RemoteSign(msg []byte, poolPubKey string) ([]byte, []byte, error)

RemoteSign send the request to local task queue

func (*KeySign) Sign

func (s *KeySign) Sign(msg legacytx.StdSignMsg) ([]byte, error)

func (*KeySign) SignWithPool

func (s *KeySign) SignWithPool(msg tx.StdSignMsg, poolPubKey common.PubKey) ([]byte, error)

SignWithPool signs a BNB beacon chain message (TODO: remove after ragnarok)

func (*KeySign) Start added in v0.41.0

func (s *KeySign) Start()

Start the keysign workers

func (*KeySign) Stop added in v0.41.0

func (s *KeySign) Stop()

Stop Keysign

type KeysignError

type KeysignError struct {
	Blame types.Blame
}

KeysignError is a custom error create to include which party to blame

func NewKeysignError

func NewKeysignError(blame types.Blame) KeysignError

NewKeysignError create a new instance of KeysignError

func (KeysignError) Error

func (k KeysignError) Error() string

Error implement error interface

func (KeysignError) IsRound7 added in v1.109.0

func (k KeysignError) IsRound7() bool

type MockThorchainKeyManager

type MockThorchainKeyManager struct{}

MockThorchainKeymanager is to mock the TSS , so as we could test it

func (*MockThorchainKeyManager) ExportAsKeyStore

func (k *MockThorchainKeyManager) ExportAsKeyStore(password string) (*EncryptedKeyJSON, error)

func (*MockThorchainKeyManager) ExportAsMnemonic

func (k *MockThorchainKeyManager) ExportAsMnemonic() (string, error)

func (*MockThorchainKeyManager) ExportAsPrivateKey

func (k *MockThorchainKeyManager) ExportAsPrivateKey() (string, error)

func (*MockThorchainKeyManager) GetAddr

func (*MockThorchainKeyManager) GetPrivKey

func (k *MockThorchainKeyManager) GetPrivKey() crypto.PrivKey

func (*MockThorchainKeyManager) RemoteSign

func (k *MockThorchainKeyManager) RemoteSign(msg []byte, poolPubKey string) ([]byte, []byte, error)

func (*MockThorchainKeyManager) Sign

func (*MockThorchainKeyManager) Start added in v1.117.0

func (k *MockThorchainKeyManager) Start()

func (*MockThorchainKeyManager) Stop added in v1.117.0

func (k *MockThorchainKeyManager) Stop()

type ThorchainKeyManager

type ThorchainKeyManager interface {
	Sign(legacytx.StdSignMsg) ([]byte, error)
	GetPrivKey() crypto.PrivKey
	GetAddr() types.AccAddress

	ExportAsMnemonic() (string, error)
	ExportAsPrivateKey() (string, error)
	ExportAsKeyStore(password string) (*EncryptedKeyJSON, error)

	RemoteSign(msg []byte, poolPubKey string) ([]byte, []byte, error)
	Start()
	Stop()
}

ThorchainKeyManager it is a composite of binance chain keymanager

Jump to

Keyboard shortcuts

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