Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
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.
type Round2Bcast ¶
type Round2Bcast struct {
// contains filtered or unexported fields
}
Round2Bcast contains values that will be broadcast to other signers after completion of round 2.
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)