Documentation ¶
Index ¶
- type PreSignature
- func (sig *PreSignature) Group() curve.Curve
- func (sig *PreSignature) Signature(shares map[party.ID]SignatureShare) *Signature
- func (sig *PreSignature) SignatureShare(hash []byte) curve.Scalar
- func (sig *PreSignature) SignerIDs() party.IDSlice
- func (sig *PreSignature) Validate() error
- func (sig *PreSignature) VerifySignatureShares(shares map[party.ID]SignatureShare, hash []byte) (culprits []party.ID)
- type Signature
- type SignatureShare
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PreSignature ¶
type PreSignature struct { // ID is a random identifier for this specific presignature. ID types.RID // R = δ⁻¹⋅Γ = δ⁻¹⋅(∑ⱼ Γⱼ) = (∑ⱼδ⁻¹γⱼ)⋅G = k⁻¹⋅G R curve.Point // RBar[j] = δ⁻¹⋅Δⱼ = (δ⁻¹kⱼ)⋅Γ = (k⁻¹kⱼ)⋅G RBar *party.PointMap // S[j] = χⱼ⋅R S *party.PointMap KShare curve.Scalar ChiShare curve.Scalar }
func EmptyPreSignature ¶
func EmptyPreSignature(group curve.Curve) *PreSignature
EmptyPreSignature returns a PreSignature with a given group, ready for unmarshalling.
func (*PreSignature) Group ¶
func (sig *PreSignature) Group() curve.Curve
Group returns the elliptic curve group associated with this PreSignature.
func (*PreSignature) Signature ¶
func (sig *PreSignature) Signature(shares map[party.ID]SignatureShare) *Signature
Signature combines the given shares σⱼ and returns a pair (R,S), where S=∑ⱼσⱼ.
func (*PreSignature) SignatureShare ¶
func (sig *PreSignature) SignatureShare(hash []byte) curve.Scalar
SignatureShare returns this party's share σᵢ = kᵢm+rχᵢ, where s = ∑ⱼσⱼ.
func (*PreSignature) SignerIDs ¶
func (sig *PreSignature) SignerIDs() party.IDSlice
func (*PreSignature) Validate ¶
func (sig *PreSignature) Validate() error
func (*PreSignature) VerifySignatureShares ¶
func (sig *PreSignature) VerifySignatureShares(shares map[party.ID]SignatureShare, hash []byte) (culprits []party.ID)
VerifySignatureShares should be called if the signature returned by PreSignature.Signature is not valid. It returns the list of parties whose shares are invalid.
type Signature ¶
func EmptySignature ¶
EmptySignature returns a new signature with a given curve, ready to be unmarshalled.
type SignatureShare ¶
SignatureShare represents an individual additive share of the signature's "s" component.