@@ -3,15 +3,16 @@ package dkg
3
3
import (
4
4
"crypto/rand"
5
5
"fmt"
6
+ "lukechampine.com/frand"
6
7
mathRand "math/rand"
7
8
"strings"
8
9
"testing"
9
10
10
- "github.com/stretchr/testify/require"
11
11
"github.com/corestario/kyber"
12
12
"github.com/corestario/kyber/group/edwards25519"
13
13
"github.com/corestario/kyber/share"
14
14
vss "github.com/corestario/kyber/share/vss/pedersen"
15
+ "github.com/stretchr/testify/require"
15
16
)
16
17
17
18
var suite = edwards25519 .NewBlakeSHA256Ed25519 ()
@@ -20,6 +21,8 @@ const defaultN = 5
20
21
21
22
var defaultT = vss .MinimumT (defaultN )
22
23
24
+ const SEED = "somestandart_seed_with_32_length"
25
+
23
26
func generate (n , t int ) (partPubs []kyber.Point , partSec []kyber.Scalar , dkgs []* DistKeyGenerator ) {
24
27
partPubs = make ([]kyber.Point , n )
25
28
partSec = make ([]kyber.Scalar , n )
@@ -29,8 +32,9 @@ func generate(n, t int) (partPubs []kyber.Point, partSec []kyber.Scalar, dkgs []
29
32
partSec [i ] = sec
30
33
}
31
34
dkgs = make ([]* DistKeyGenerator , n )
35
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
32
36
for i := 0 ; i < n ; i ++ {
33
- dkg , err := NewDistKeyGenerator (suite , partSec [i ], partPubs , t )
37
+ dkg , err := NewDistKeyGenerator (suite , partSec [i ], partPubs , t , reader )
34
38
if err != nil {
35
39
panic (err )
36
40
}
@@ -43,7 +47,8 @@ func TestDKGNewDistKeyGenerator(t *testing.T) {
43
47
partPubs , partSec , _ := generate (defaultN , defaultT )
44
48
45
49
long := partSec [0 ]
46
- dkg , err := NewDistKeyGenerator (suite , long , partPubs , defaultT )
50
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
51
+ dkg , err := NewDistKeyGenerator (suite , long , partPubs , defaultT , reader )
47
52
require .Nil (t , err )
48
53
require .NotNil (t , dkg .dealer )
49
54
require .True (t , dkg .canIssue )
@@ -55,7 +60,7 @@ func TestDKGNewDistKeyGenerator(t *testing.T) {
55
60
require .False (t , dkg .isResharing )
56
61
57
62
sec , _ := genPair ()
58
- _ , err = NewDistKeyGenerator (suite , sec , partPubs , defaultT )
63
+ _ , err = NewDistKeyGenerator (suite , sec , partPubs , defaultT , reader )
59
64
require .Error (t , err )
60
65
}
61
66
@@ -265,6 +270,7 @@ func TestDKGResharingThreshold(t *testing.T) {
265
270
newPubs [len (dkgs )] = newPub
266
271
newDkgs := make ([]* DistKeyGenerator , newN )
267
272
var err error
273
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
268
274
for i := range dkgs {
269
275
c := & Config {
270
276
Suite : suite ,
@@ -274,6 +280,7 @@ func TestDKGResharingThreshold(t *testing.T) {
274
280
Share : shares [i ],
275
281
Threshold : newT ,
276
282
OldThreshold : oldT ,
283
+ Reader : reader ,
277
284
}
278
285
newDkgs [i ], err = NewDistKeyHandler (c )
279
286
require .NoError (t , err )
@@ -407,8 +414,9 @@ func TestDKGThreshold(t *testing.T) {
407
414
publics [i ] = pub
408
415
}
409
416
417
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
410
418
for i := 0 ; i < n ; i ++ {
411
- dkg , err := NewDistKeyGenerator (suite , privates [i ], publics , newTotal )
419
+ dkg , err := NewDistKeyGenerator (suite , privates [i ], publics , newTotal , reader )
412
420
if err != nil {
413
421
panic (err )
414
422
}
@@ -624,6 +632,7 @@ func TestDKGResharing(t *testing.T) {
624
632
// start resharing within the same group
625
633
newDkgs := make ([]* DistKeyGenerator , len (dkgs ))
626
634
var err error
635
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
627
636
for i := range dkgs {
628
637
c := & Config {
629
638
Suite : suite ,
@@ -632,6 +641,7 @@ func TestDKGResharing(t *testing.T) {
632
641
NewNodes : publics ,
633
642
Share : shares [i ],
634
643
OldThreshold : oldT ,
644
+ Reader : reader ,
635
645
}
636
646
newDkgs [i ], err = NewDistKeyHandler (c )
637
647
require .NoError (t , err )
@@ -682,6 +692,7 @@ func TestDKGResharingRemoveNode(t *testing.T) {
682
692
// start resharing within the same group
683
693
newDkgs := make ([]* DistKeyGenerator , len (dkgs ))
684
694
var err error
695
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
685
696
for i := range dkgs {
686
697
c := & Config {
687
698
Suite : suite ,
@@ -690,6 +701,7 @@ func TestDKGResharingRemoveNode(t *testing.T) {
690
701
NewNodes : publics [:newN ],
691
702
Share : shares [i ],
692
703
OldThreshold : oldT ,
704
+ Reader : reader ,
693
705
}
694
706
newDkgs [i ], err = NewDistKeyHandler (c )
695
707
require .NoError (t , err )
@@ -753,6 +765,7 @@ func TestDKGResharingNewNodesThreshold(t *testing.T) {
753
765
oldDkgs := make ([]* DistKeyGenerator , oldN )
754
766
newDkgs := make ([]* DistKeyGenerator , newN )
755
767
var err error
768
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
756
769
for i := 0 ; i < oldN ; i ++ {
757
770
c := & Config {
758
771
Suite : suite ,
@@ -762,6 +775,7 @@ func TestDKGResharingNewNodesThreshold(t *testing.T) {
762
775
Share : shares [i ],
763
776
Threshold : newT ,
764
777
OldThreshold : oldT ,
778
+ Reader : reader ,
765
779
}
766
780
oldDkgs [i ], err = NewDistKeyHandler (c )
767
781
require .NoError (t , err )
@@ -781,6 +795,7 @@ func TestDKGResharingNewNodesThreshold(t *testing.T) {
781
795
PublicCoeffs : shares [0 ].Commits ,
782
796
Threshold : newT ,
783
797
OldThreshold : oldT ,
798
+ Reader : reader ,
784
799
}
785
800
newDkgs [i ], err = NewDistKeyHandler (c )
786
801
require .NoError (t , err )
@@ -921,6 +936,7 @@ func TestDKGResharingNewNodes(t *testing.T) {
921
936
oldDkgs := make ([]* DistKeyGenerator , oldN )
922
937
newDkgs := make ([]* DistKeyGenerator , newN )
923
938
var err error
939
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
924
940
for i := 0 ; i < oldN ; i ++ {
925
941
c := & Config {
926
942
Suite : suite ,
@@ -930,6 +946,7 @@ func TestDKGResharingNewNodes(t *testing.T) {
930
946
Share : shares [i ],
931
947
Threshold : newT ,
932
948
OldThreshold : oldT ,
949
+ Reader : reader ,
933
950
}
934
951
oldDkgs [i ], err = NewDistKeyHandler (c )
935
952
require .NoError (t , err )
@@ -959,6 +976,7 @@ func TestDKGResharingNewNodes(t *testing.T) {
959
976
PublicCoeffs : shares [0 ].Commits ,
960
977
Threshold : newT ,
961
978
OldThreshold : oldT ,
979
+ Reader : reader ,
962
980
}
963
981
newDkgs [i ], err = NewDistKeyHandler (c )
964
982
require .NoError (t , err )
@@ -1105,6 +1123,7 @@ func TestDKGResharingPartialNewNodes(t *testing.T) {
1105
1123
// creating all dkgs
1106
1124
totalDkgs := make ([]* DistKeyGenerator , total )
1107
1125
var err error
1126
+ reader := frand .NewCustom ([]byte (SEED ), 32 , 20 )
1108
1127
for i := 0 ; i < oldN ; i ++ {
1109
1128
c := & Config {
1110
1129
Suite : suite ,
@@ -1114,6 +1133,7 @@ func TestDKGResharingPartialNewNodes(t *testing.T) {
1114
1133
Share : shares [i ],
1115
1134
Threshold : newT ,
1116
1135
OldThreshold : oldT ,
1136
+ Reader : reader ,
1117
1137
}
1118
1138
totalDkgs [i ], err = NewDistKeyHandler (c )
1119
1139
require .NoError (t , err )
@@ -1143,6 +1163,7 @@ func TestDKGResharingPartialNewNodes(t *testing.T) {
1143
1163
PublicCoeffs : shares [0 ].Commits ,
1144
1164
Threshold : newT ,
1145
1165
OldThreshold : oldT ,
1166
+ Reader : reader ,
1146
1167
}
1147
1168
totalDkgs [i ], err = NewDistKeyHandler (c )
1148
1169
require .NoError (t , err )
@@ -1261,30 +1282,29 @@ func TestReaderMixedEntropy(t *testing.T) {
1261
1282
}
1262
1283
1263
1284
func TestUserOnlyFlagTrueBehavior (t * testing.T ) {
1264
- seed := "String to test reproducibility with"
1265
1285
partPubs , partSec , _ := generate (defaultN , defaultT )
1266
1286
long := partSec [0 ]
1267
1287
1268
- r1 := strings . NewReader ( seed )
1288
+ reader := frand . NewCustom ([] byte ( SEED ), 32 , 20 )
1269
1289
c1 := & Config {
1270
1290
Suite : suite ,
1271
1291
Longterm : long ,
1272
1292
NewNodes : partPubs ,
1273
1293
Threshold : defaultT ,
1274
- Reader : r1 ,
1294
+ Reader : reader ,
1275
1295
UserReaderOnly : true ,
1276
1296
}
1277
1297
dkg1 , err := NewDistKeyHandler (c1 )
1278
1298
require .Nil (t , err )
1279
1299
require .NotNil (t , dkg1 .dealer )
1280
1300
1281
- r2 := strings . NewReader ( seed )
1301
+ reader1 := frand . NewCustom ([] byte ( SEED ), 32 , 20 )
1282
1302
c2 := & Config {
1283
1303
Suite : suite ,
1284
1304
Longterm : long ,
1285
1305
NewNodes : partPubs ,
1286
1306
Threshold : defaultT ,
1287
- Reader : r2 ,
1307
+ Reader : reader1 ,
1288
1308
UserReaderOnly : true ,
1289
1309
}
1290
1310
dkg2 , err := NewDistKeyHandler (c2 )
0 commit comments