Documentation ¶
Overview ¶
Package frost is an implementation of t-of-n threshold signature of https://eprint.iacr.org/2020/852.pdf
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ChallengeDerive ¶
type Ed25519ChallengeDeriver ¶
type Ed25519ChallengeDeriver struct{}
type Round1Bcast ¶
Round1Bcast contains values to be broadcast to all players after the completion of signing round 1.
func (*Round1Bcast) Decode ¶ added in v1.5.4
func (result *Round1Bcast) Decode(input []byte) error
func (*Round1Bcast) Encode ¶ added in v1.5.4
func (result *Round1Bcast) Encode() ([]byte, error)
type Round2Bcast ¶
Round2Bcast contains values that will be broadcast to other signers after completion of round 2.
func (*Round2Bcast) Decode ¶ added in v1.5.4
func (result *Round2Bcast) Decode(input []byte) error
func (*Round2Bcast) Encode ¶ added in v1.5.4
func (result *Round2Bcast) Encode() ([]byte, error)
type Round3Bcast ¶
type Round3Bcast struct { R curves.Point Z, C curves.Scalar // contains filtered or unexported fields }
Round3Bcast contains the output of FROST signature, i.e., it contains FROST signature (z,c) and the corresponding message msg.
type Signer ¶
type Signer struct {
// contains filtered or unexported fields
}
Signer is a tSchnorr player performing the signing operation.
func NewSigner ¶
func NewSigner(info *frost.DkgParticipant, id, thresh uint32, lcoeffs map[uint32]curves.Scalar, cosigners []uint32, challengeDeriver ChallengeDerive) (*Signer, error)
NewSigner create a signer from a dkg participant Note that we can pre-assign Lagrange coefficients lcoeffs of each cosigner. This optimizes performance. See paragraph 3 of section 3 in the draft - https://tools.ietf.org/pdf/draft-komlo-frost-00.pdf
func (*Signer) SignRound1 ¶
func (signer *Signer) SignRound1() (*Round1Bcast, error)
func (*Signer) SignRound2 ¶
func (signer *Signer) SignRound2(msg []byte, round2Input map[uint32]*Round1Bcast) (*Round2Bcast, error)
SignRound2 implements FROST signing round 2.
func (*Signer) SignRound3 ¶
func (signer *Signer) SignRound3(round3Input map[uint32]*Round2Bcast) (*Round3Bcast, error)