aboutsummaryrefslogtreecommitdiffstats
path: root/core/crypto
diff options
context:
space:
mode:
authorMission Liao <mission.liao@dexon.org>2018-12-16 14:44:15 +0800
committerGitHub <noreply@github.com>2018-12-16 14:44:15 +0800
commit99d72382687196fb15ea6ab0fcf297b9ab10ac46 (patch)
tree2fc321a32c9cb1d72933dbbdb0c259d6ae4f6aa3 /core/crypto
parent5f32dc8d27564e1f3a105fd1dacf02130b08621a (diff)
downloadtangerine-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar
tangerine-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.gz
tangerine-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.bz2
tangerine-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.lz
tangerine-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.xz
tangerine-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.zst
tangerine-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.zip
core: cache dkg's private key in db (#371)
Diffstat (limited to 'core/crypto')
-rw-r--r--core/crypto/dkg/utils.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/core/crypto/dkg/utils.go b/core/crypto/dkg/utils.go
index fa4ad9f..9e470f0 100644
--- a/core/crypto/dkg/utils.go
+++ b/core/crypto/dkg/utils.go
@@ -18,7 +18,9 @@
package dkg
import (
+ "encoding/binary"
"fmt"
+ "math/rand"
"github.com/dexon-foundation/bls/ffi/go/bls"
@@ -69,3 +71,22 @@ func RecoverGroupPublicKey(pubShares []*PublicKeyShares) *PublicKey {
}
return pub
}
+
+// NewRandomPrivateKeyShares constructs a private key shares randomly.
+func NewRandomPrivateKeyShares() *PrivateKeyShares {
+ // Generate IDs.
+ rndIDs := make(IDs, 0, 10)
+ for i := range rndIDs {
+ id := make([]byte, 8)
+ binary.LittleEndian.PutUint64(id, rand.Uint64())
+ rndIDs[i] = NewID(id)
+ }
+ prvShares := NewEmptyPrivateKeyShares()
+ prvShares.SetParticipants(rndIDs)
+ for _, id := range rndIDs {
+ if err := prvShares.AddShare(id, NewPrivateKey()); err != nil {
+ panic(err)
+ }
+ }
+ return prvShares
+}