diff --git a/packages/binary/valuetransfer/address/signaturescheme/bls_test.go b/packages/binary/valuetransfer/address/signaturescheme/bls_test.go index 9e1a38aa85f917454ee5e2c84389c723884c021a..c9d3f3053650ddf7f700517e0f788a5256597c6c 100644 --- a/packages/binary/valuetransfer/address/signaturescheme/bls_test.go +++ b/packages/binary/valuetransfer/address/signaturescheme/bls_test.go @@ -1,6 +1,7 @@ package signaturescheme import ( + "github.com/mr-tron/base58" "testing" "github.com/magiconair/properties/assert" @@ -8,16 +9,36 @@ import ( var dataToSign = []byte("Hello Boneh-Lynn-Shacham (BLS) --> Boneh-Drijvers-Neven (BDN)") -func TestBLS_base(t *testing.T) { - blsSigScheme := RandBLS() - t.Logf("generating random BLS signature scheme: %s\n", blsSigScheme.(*blsSignatureScheme).String()) - signature := blsSigScheme.Sign(dataToSign) +func TestBLS_rndSigScheme(t *testing.T) { + sigScheme := RandBLS() + t.Logf("generating random BLS signature scheme: %s\n", sigScheme.(*blsSignatureScheme).String()) + signature := sigScheme.Sign(dataToSign) - assert.Equal(t, blsSigScheme.Address(), signature.Address()) + assert.Equal(t, sigScheme.Address(), signature.Address()) res := signature.IsValid(dataToSign) assert.Equal(t, res, true) } +const ( + priKeyTest = "Cjsu52qf28G4oLiUDcimEY7SPbWJQA9zoKCNi4ywMxg" + pubKeyTest = "28LgNCDp52gTotmd21hcEXKar5tTyxuJKqQdGHCJnZ5Z1M7Rdh4Qo2BYC3s3NicLD99tZ3yX9mZvRmsnQLMRcHnzqgq2CQp7CYWCKfTUT9yzJKUTQ4JmN2DhSkSNc5kau4KE8PRGByQxpiYQq4DRF4Qb3Dn4cHmhTrDi9xQiYTxoAYW" +) + +func TestBLS_sigScheme(t *testing.T) { + priKeyBin, err := base58.Decode(priKeyTest) + assert.Equal(t, err, nil) + + pubKeyBin, err := base58.Decode(pubKeyTest) + assert.Equal(t, err, nil) + + sigScheme, err := BLS(priKeyBin, pubKeyBin) + assert.Equal(t, err, nil) + + signature := sigScheme.Sign(dataToSign) + assert.Equal(t, sigScheme.Address(), signature.Address()) + assert.Equal(t, signature.IsValid(dataToSign), true) +} + // number of signatures to aggregate const numSigs = 100 @@ -29,16 +50,13 @@ func TestBLS_aggregation(t *testing.T) { sigSchemes[i] = RandBLS() sigs[i] = sigSchemes[i].Sign(dataToSign) } - aggregatedSig1, err := AggregateBLSSignatures(sigs...) + // aggregate 2 signatures + a01, err := AggregateBLSSignatures(sigs[0], sigs[1]) assert.Equal(t, err, nil) + assert.Equal(t, a01.IsValid(dataToSign), true) - assert.Equal(t, aggregatedSig1.IsValid(dataToSign), true) - - aggregatedScheme, err := AggregateBLSSignatureSchemes(sigSchemes...) + // aggregate N signatures + aN, err := AggregateBLSSignatures(sigs...) assert.Equal(t, err, nil) - - if err == nil { - aggregatedSig2 := aggregatedScheme.Sign(dataToSign) - assert.Equal(t, aggregatedSig2, aggregatedSig2) - } + assert.Equal(t, aN.IsValid(dataToSign), true) }