Documentation ¶
Index ¶
- Constants
- func DecryptKeyshares(encrypted []byte, passphrase string) ([]byte, error)
- func EncryptKeyshares(path, passphrase string) ([]byte, error)
- func RecoverKeyShares(conf config.Bifrost, thorchain thorclient.ThorchainBridge) error
- type CryptoJSON
- type EncryptedKeyJSON
- type KeyGen
- type KeySign
- func (s *KeySign) ExportAsKeyStore(password string) (*EncryptedKeyJSON, error)
- func (s *KeySign) ExportAsMnemonic() (string, error)
- func (s *KeySign) ExportAsPrivateKey() (string, error)
- func (s *KeySign) GetAddr() sdkTypes.AccAddress
- func (s *KeySign) GetPrivKey() crypto.PrivKey
- func (s *KeySign) RemoteSign(msg []byte, poolPubKey string) ([]byte, []byte, error)
- func (s *KeySign) Sign(msg legacytx.StdSignMsg) ([]byte, error)
- func (s *KeySign) SignWithPool(msg tx.StdSignMsg, poolPubKey common.PubKey) ([]byte, error)
- func (s *KeySign) Start()
- func (s *KeySign) Stop()
- type KeysignError
- type MockThorchainKeyManager
- func (k *MockThorchainKeyManager) ExportAsKeyStore(password string) (*EncryptedKeyJSON, error)
- func (k *MockThorchainKeyManager) ExportAsMnemonic() (string, error)
- func (k *MockThorchainKeyManager) ExportAsPrivateKey() (string, error)
- func (k *MockThorchainKeyManager) GetAddr() ctypes.AccAddress
- func (k *MockThorchainKeyManager) GetPrivKey() crypto.PrivKey
- func (k *MockThorchainKeyManager) RemoteSign(msg []byte, poolPubKey string) ([]byte, []byte, error)
- func (k *MockThorchainKeyManager) Sign(legacytx.StdSignMsg) ([]byte, error)
- func (k *MockThorchainKeyManager) Start()
- func (k *MockThorchainKeyManager) Stop()
- type ThorchainKeyManager
Constants ¶
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 )
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
EncryptKeyshares decrypts the provided encrypted keyshares using the passphrase.
func EncryptKeyshares ¶ added in v1.106.0
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 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
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 ¶
ExportAsMnemonic THORNode don't need this function for TSS, just keep it to fulfill KeyManager interface
func (*KeySign) ExportAsPrivateKey ¶
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 ¶
GetPrivKey THORNode don't actually have any private key , but just return something
func (*KeySign) RemoteSign ¶
RemoteSign send the request to local task queue
func (*KeySign) SignWithPool ¶
SignWithPool signs a BNB beacon chain message (TODO: remove after ragnarok)
type KeysignError ¶
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) 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 (k *MockThorchainKeyManager) GetAddr() ctypes.AccAddress
func (*MockThorchainKeyManager) GetPrivKey ¶
func (k *MockThorchainKeyManager) GetPrivKey() crypto.PrivKey
func (*MockThorchainKeyManager) RemoteSign ¶
func (*MockThorchainKeyManager) Sign ¶
func (k *MockThorchainKeyManager) Sign(legacytx.StdSignMsg) ([]byte, error)
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