tss

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: AGPL-3.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrConversion for big int conversion error
	ErrConversion = errors.New("conversion error")
)

Functions

func ConvertDKGResult

func ConvertDKGResult(k *Pubkey, cfgShare string, cfgBKs map[string]BK, curve elliptic.Curve) (*dkg.Result, error)

ConvertDKGResult converts DKG result from config.

func FromECDSAPub

func FromECDSAPub(pub *ecdsa.PublicKey) []byte

func GenerateSignature

func GenerateSignature(r, s *big.Int, pubkey *Pubkey, msg []byte) ([]byte, error)

func IsLowS

func IsLowS(k *ecdsa.PublicKey, s *big.Int) (bool, error)

IsLow checks that s is a low-S

func Keccak256

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

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

func NewServiceDkg

func NewServiceDkg(threshold, rank uint32, curve elliptic.Curve) *serviceDkg

func NewServiceSigner

func NewServiceSigner(pubkey *Pubkey, share string, BKs map[string]BK, message []byte, curve elliptic.Curve) *serviceSigner

func PubkeyToAddress

func PubkeyToAddress(p ecdsa.PublicKey) common.Address

func Receive

func Receive(tss GenericTSS, ctx context.Context, c *websocket.Conn)

func S256

func S256() elliptic.Curve

S256 returns an instance of the secp256k1 curve.

func Send

func Send(tss GenericTSS, ctx context.Context, c *websocket.Conn)

func ToLowS

func ToLowS(k *ecdsa.PublicKey, s *big.Int) (*big.Int, error)

Types

type BK

type BK struct {
	X    string
	Rank uint32
}

type ClientDkg

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

Client

func NewClientDkg

func NewClientDkg() (*ClientDkg, error)

Server

func (*ClientDkg) GetNextMessageToSend

func (p *ClientDkg) GetNextMessageToSend() ([]byte, error)

func (*ClientDkg) HandleMessage

func (p *ClientDkg) HandleMessage(msg []byte) error

func (*ClientDkg) Process

func (p *ClientDkg) Process() (*DkgResult, error)

type ClientSigner

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

Client

func NewClientSigner

func NewClientSigner(pubkeyStr PubkeyStr, share string, BKs map[string]BK, message []byte) (*ClientSigner, error)

func (*ClientSigner) GetNextMessageToSend

func (p *ClientSigner) GetNextMessageToSend() ([]byte, error)

func (*ClientSigner) HandleMessage

func (p *ClientSigner) HandleMessage(msg []byte) error

func (*ClientSigner) Process

func (p *ClientSigner) Process() (*Signature, error)

func (*ClientSigner) Test

func (p *ClientSigner) Test() []byte

type DKGResult

type DKGResult struct {
	Share  string
	Pubkey Pubkey
	BKs    map[string]BK
}

type DkgResult

type DkgResult struct {
	Pubkey  PubkeyStr
	BKs     map[string]BK
	Share   string
	Address string
}

type GenericTSS

type GenericTSS interface {
	// Process() (*Signature, error)
	// ProcessStr() (string, error)
	GetNextMessageToSend() ([]byte, error)
	HandleMessage([]byte) error
}

type KeccakState

type KeccakState interface {
	hash.Hash
	Read([]byte) (int, error)
}

because it doesn't copy the internal state, but also modifies the internal state.

func NewKeccakState

func NewKeccakState() KeccakState

NewKeccakState creates a new KeccakState

type Message

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

type PeerManager

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

func NewPeerManager

func NewPeerManager(id string) *PeerManager

func (*PeerManager) AddPeer

func (p *PeerManager) AddPeer(peerID string)

AddPeers adds peers to peer list.

func (*PeerManager) GetNextMessageToSend

func (p *PeerManager) GetNextMessageToSend(peerID string) ([]byte, error)

func (*PeerManager) HandleMessage

func (p *PeerManager) HandleMessage(msg []byte) error

func (*PeerManager) MustSend

func (p *PeerManager) MustSend(peerID string, message interface{})

func (*PeerManager) NumPeers

func (p *PeerManager) NumPeers() uint32

func (*PeerManager) PeerIDs

func (p *PeerManager) PeerIDs() []string

func (*PeerManager) RegisterHandleMessage

func (p *PeerManager) RegisterHandleMessage(handleFunc func([]byte) error)

func (*PeerManager) SelfID

func (p *PeerManager) SelfID() string

type Pubkey

type Pubkey struct {
	X *big.Int
	Y *big.Int
}

func NewPubkey

func NewPubkey(k PubkeyStr) (*Pubkey, error)

func (*Pubkey) GetAddress

func (k *Pubkey) GetAddress() common.Address

func (*Pubkey) GetBytes

func (k *Pubkey) GetBytes() []byte

func (*Pubkey) GetECDSA

func (k *Pubkey) GetECDSA() *ecdsa.PublicKey

func (*Pubkey) GetStr

func (k *Pubkey) GetStr() PubkeyStr

type PubkeyStr

type PubkeyStr struct {
	X string
	Y string
}

type ServerDkg

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

func NewServerDkg

func NewServerDkg() (*ServerDkg, error)

Server

func (*ServerDkg) GetNextMessageToSend

func (p *ServerDkg) GetNextMessageToSend() ([]byte, error)

func (*ServerDkg) HandleMessage

func (p *ServerDkg) HandleMessage(msg []byte) error

func (*ServerDkg) Process

func (p *ServerDkg) Process() (*DkgResult, error)

type ServerSigner

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

Server

func NewServerSigner

func NewServerSigner(pubkeyStr PubkeyStr, share string, BKs map[string]BK, message []byte) (*ServerSigner, error)

func (*ServerSigner) GetNextMessageToSend

func (p *ServerSigner) GetNextMessageToSend() ([]byte, error)

func (*ServerSigner) HandleMessage

func (p *ServerSigner) HandleMessage(msg []byte) error

func (*ServerSigner) Process

func (p *ServerSigner) Process() (*Signature, error)

type Signature

type Signature struct {
	R         *big.Int
	S         *big.Int
	Signature []byte
}

type SigningParameters

type SigningParameters struct {
	Pubkey PubkeyStr
	BKs    map[string]BK
}

Jump to

Keyboard shortcuts

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