diff --git a/packages/binary/drng/subtypes/collectiveBeacon/collective_beacon_test.go b/packages/binary/drng/subtypes/collectiveBeacon/collective_beacon_test.go index 3306c378ab5beacef365550ea5ff143860935cab..62d991fb9ebcb1ff1ddc4965f53948194f749114 100644 --- a/packages/binary/drng/subtypes/collectiveBeacon/collective_beacon_test.go +++ b/packages/binary/drng/subtypes/collectiveBeacon/collective_beacon_test.go @@ -139,85 +139,3 @@ func dkgShares(t *testing.T, n, threshold int) *payload.Payload { return payload.New(1, 1, sig, newSig, dpk) } - -func TestCBSequence(t *testing.T) { - cbSequence(t, 5, 5, 3) -} - -func cbSequence(t *testing.T, l, n, threshold int) []*payload.Payload { - var priPoly *share.PriPoly - var pubPoly *share.PubPoly - var err error - // create shares and commitments - for i := 0; i < n; i++ { - pri := share.NewPriPoly(key.KeyGroup, threshold, key.KeyGroup.Scalar().Pick(random.New()), random.New()) - pub := pri.Commit(key.KeyGroup.Point().Base()) - if priPoly == nil { - priPoly = pri - pubPoly = pub - continue - } - priPoly, err = priPoly.Add(pri) - require.NoError(t, err) - - pubPoly, err = pubPoly.Add(pub) - require.NoError(t, err) - } - shares := priPoly.Shares(n) - secret, err := share.RecoverSecret(key.KeyGroup, shares, threshold, n) - require.NoError(t, err) - require.True(t, secret.Equal(priPoly.Secret())) - - msg := []byte("first message") - sigs := make([][]byte, n) - _, commits := pubPoly.Info() - dkgShares := make([]*key.Share, n) - - // partial signatures - for i := 0; i < n; i++ { - sigs[i], err = key.Scheme.Sign(shares[i], msg) - require.NoError(t, err) - - dkgShares[i] = &key.Share{ - Share: shares[i], - Commits: commits, - } - } - - // reconstruct collective signature - sig, err := key.Scheme.Recover(pubPoly, msg, sigs, threshold, n) - require.NoError(t, err) - - // verify signature against distributed public key - err = key.Scheme.VerifyRecovered(pubPoly.Commit(), msg, sig) - require.NoError(t, err) - - result := make([]*payload.Payload, l) - - for i := 0; i < l; i++ { - - msg = beacon.Message(uint64(i+1), sig) - sigs = make([][]byte, n) - // partial signatures - for i := 0; i < n; i++ { - sigs[i], err = key.Scheme.Sign(shares[i], msg) - require.NoError(t, err) - } - - // reconstruct collective signature - newSig, err := key.Scheme.Recover(pubPoly, msg, sigs, threshold, n) - require.NoError(t, err) - - dpk, err := pubPoly.Commit().MarshalBinary() - require.NoError(t, err) - - log.Println(hex.EncodeToString(sig)) - log.Println(hex.EncodeToString(newSig)) - log.Println(hex.EncodeToString(dpk)) - - result[i] = payload.New(1, uint64(i+1), sig, newSig, dpk) - - sig = newSig - } - return result -}