diff options
author | Mission Liao <mission.liao@dexon.org> | 2018-12-16 14:44:15 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-16 14:44:15 +0800 |
commit | 99d72382687196fb15ea6ab0fcf297b9ab10ac46 (patch) | |
tree | 2fc321a32c9cb1d72933dbbdb0c259d6ae4f6aa3 /core/crypto | |
parent | 5f32dc8d27564e1f3a105fd1dacf02130b08621a (diff) | |
download | dexon-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar dexon-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.gz dexon-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.bz2 dexon-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.lz dexon-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.xz dexon-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.tar.zst dexon-consensus-99d72382687196fb15ea6ab0fcf297b9ab10ac46.zip |
core: cache dkg's private key in db (#371)
Diffstat (limited to 'core/crypto')
-rw-r--r-- | core/crypto/dkg/utils.go | 21 |
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 +} |