Merge pull request #339 from harmony-one/rj_branch

Add unit tests for bls utils
pull/347/head
Rongjian Lan 6 years ago committed by GitHub
commit 4c9e421932
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 38
      crypto/bls/bls_test.go
  2. 1
      internal/utils/utils.go
  3. 15
      internal/utils/utils_test.go

@ -0,0 +1,38 @@
package bls
import (
"testing"
"github.com/harmony-one/bls/ffi/go/bls"
"github.com/harmony-one/harmony/internal/utils"
)
// Test the basic functionality of a BLS multi-sig mask.
func TestNewMask(test *testing.T) {
_, pubKey1 := utils.GenKeyBLS("127.0.0.1", "5555")
_, pubKey2 := utils.GenKeyBLS("127.0.0.1", "6666")
_, pubKey3 := utils.GenKeyBLS("127.0.0.1", "7777")
mask, err := NewMask([]*bls.PublicKey{pubKey1, pubKey2, pubKey3}, pubKey1)
if err != nil {
test.Errorf("Failed to create a new Mask: %s", err)
}
if mask.Len() != 1 {
test.Errorf("Mask created with wrong size: %d", mask.Len())
}
enabled, err := mask.KeyEnabled(pubKey1)
if !enabled || err != nil {
test.Errorf("My key pubKey1 should have been enabled: %s", err)
}
if mask.CountEnabled() != 1 {
test.Error("Only one key should have been enabled")
}
if mask.CountTotal() != 3 {
test.Error("Should have a total of 3 keys")
}
}

@ -85,6 +85,7 @@ func GenKeyBLS(ip, port string) (*bls.SecretKey, *bls.PublicKey) {
err := privateKey.SetLittleEndian(nodeIDBytes)
if err != nil {
log.Print("failed to set private key", err)
return nil, nil
}
priKey := &privateKey
pubKey := privateKey.GetPublicKey()

@ -1,6 +1,8 @@
package utils
import (
"bytes"
"encoding/hex"
"testing"
"github.com/harmony-one/harmony/p2p"
@ -48,6 +50,19 @@ func TestGenKey(t *testing.T) {
GenKey("3.3.3.3", "3456")
}
// Test for GenKeyBLS
func TestGenKeyBLS(t *testing.T) {
priKey, pubKey := GenKeyBLS("3.3.3.3", "3456")
if priKey == nil || pubKey == nil {
t.Error("Failed to create keys for BLS sig")
}
pubKeyBytes, _ := hex.DecodeString("ca6247713431a59cbadfe282b36cb13746b6e5c5db6e5972a10a83adffdf23f8aab246229cb3050e061e1024aa9b6518e200dd9663a8c855e596f1007150aa0672e6f40d073947aa027e8ffe8e89d894ca3916f80fdb350f4b8643f6ff99510c")
if bytes.Compare(pubKey.Serialize(), pubKeyBytes) != 0 {
t.Errorf("Unexpected public key: %s", hex.EncodeToString(pubKey.Serialize()))
}
}
// Test for GenKeyP2P, noted the length of private key can be random
// thus we don't test it here.
func TestGenKeyP2P(t *testing.T) {

Loading…
Cancel
Save