diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-09-26 17:13:37 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-26 17:13:37 +0800 |
commit | 7450e6ba7f7299d03b04a7e2a9b3bc5911b94cfe (patch) | |
tree | 41b823a05f81615558a37567dab85e2958b59329 /core/crypto/dkg | |
parent | 663817d3e0d5a3c28cb0c5e378a533e242af5fdf (diff) | |
download | tangerine-consensus-7450e6ba7f7299d03b04a7e2a9b3bc5911b94cfe.tar.gz tangerine-consensus-7450e6ba7f7299d03b04a7e2a9b3bc5911b94cfe.tar.zst tangerine-consensus-7450e6ba7f7299d03b04a7e2a9b3bc5911b94cfe.zip |
crypto: sigtopub to crypto package. remove SigToPubFn (#141)
Diffstat (limited to 'core/crypto/dkg')
-rw-r--r-- | core/crypto/dkg/dkg.go | 11 | ||||
-rw-r--r-- | core/crypto/dkg/dkg_test.go | 2 | ||||
-rw-r--r-- | core/crypto/dkg/utils.go | 14 |
3 files changed, 17 insertions, 10 deletions
diff --git a/core/crypto/dkg/dkg.go b/core/crypto/dkg/dkg.go index fe05e96..55199a9 100644 --- a/core/crypto/dkg/dkg.go +++ b/core/crypto/dkg/dkg.go @@ -38,6 +38,8 @@ var ( ErrShareNotFound = fmt.Errorf("share not found") ) +const cryptoType = "bls" + var publicKeyLength int func init() { @@ -334,7 +336,10 @@ func (prv *PrivateKey) PublicKey() crypto.PublicKey { func (prv *PrivateKey) Sign(hash common.Hash) (crypto.Signature, error) { msg := string(hash[:]) sign := prv.privateKey.Sign(msg) - return crypto.Signature(sign.Serialize()), nil + return crypto.Signature{ + Type: cryptoType, + Signature: sign.Serialize(), + }, nil } // Bytes returns []byte representation of private key. @@ -361,11 +366,11 @@ func (prv *PrivateKey) String() string { // VerifySignature checks that the given public key created signature over hash. func (pub PublicKey) VerifySignature( hash common.Hash, signature crypto.Signature) bool { - if len(signature) == 0 { + if len(signature.Signature) == 0 { return false } var sig bls.Sign - if err := sig.Deserialize(signature[:]); err != nil { + if err := sig.Deserialize(signature.Signature[:]); err != nil { fmt.Println(err) return false } diff --git a/core/crypto/dkg/dkg_test.go b/core/crypto/dkg/dkg_test.go index 9488dcc..84a78f4 100644 --- a/core/crypto/dkg/dkg_test.go +++ b/core/crypto/dkg/dkg_test.go @@ -284,7 +284,7 @@ func (s *DKGTestSuite) TestSignature() { sig, err := prvKey.Sign(hash) s.Require().NoError(err) s.True(pubKey.VerifySignature(hash, sig)) - sig[0]++ + sig.Signature[0]++ s.False(pubKey.VerifySignature(hash, sig)) sig = crypto.Signature{} s.False(pubKey.VerifySignature(hash, sig)) diff --git a/core/crypto/dkg/utils.go b/core/crypto/dkg/utils.go index 967973d..45c4a27 100644 --- a/core/crypto/dkg/utils.go +++ b/core/crypto/dkg/utils.go @@ -38,18 +38,20 @@ func RecoverSignature(sigs []PartialSignature, signerIDs IDs) ( crypto.Signature, error) { blsSigs := make([]bls.Sign, len(sigs)) for i, sig := range sigs { - if len(sig) == 0 { - return nil, ErrEmptySignature + if len(sig.Signature) == 0 { + return crypto.Signature{}, ErrEmptySignature } - if err := blsSigs[i].Deserialize([]byte(sig)); err != nil { - return nil, err + if err := blsSigs[i].Deserialize([]byte(sig.Signature)); err != nil { + return crypto.Signature{}, err } } var recoverSig bls.Sign if err := recoverSig.Recover(blsSigs, []bls.ID(signerIDs)); err != nil { - return nil, err + return crypto.Signature{}, err } - return crypto.Signature(recoverSig.Serialize()), nil + return crypto.Signature{ + Type: cryptoType, + Signature: recoverSig.Serialize()}, nil } // RecoverGroupPublicKey recovers group public key. |