Skip to content
Snippets Groups Projects
Commit 6face25f authored by lunfardo314's avatar lunfardo314
Browse files

BLS signatures: bug fix in test, removed unnecessary function, added new test

parent 1a036535
No related branches found
No related tags found
No related merge requests found
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)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment