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 package signaturescheme
import ( import (
"github.com/mr-tron/base58"
"testing" "testing"
"github.com/magiconair/properties/assert" "github.com/magiconair/properties/assert"
...@@ -8,16 +9,36 @@ import ( ...@@ -8,16 +9,36 @@ import (
var dataToSign = []byte("Hello Boneh-Lynn-Shacham (BLS) --> Boneh-Drijvers-Neven (BDN)") var dataToSign = []byte("Hello Boneh-Lynn-Shacham (BLS) --> Boneh-Drijvers-Neven (BDN)")
func TestBLS_base(t *testing.T) { func TestBLS_rndSigScheme(t *testing.T) {
blsSigScheme := RandBLS() sigScheme := RandBLS()
t.Logf("generating random BLS signature scheme: %s\n", blsSigScheme.(*blsSignatureScheme).String()) t.Logf("generating random BLS signature scheme: %s\n", sigScheme.(*blsSignatureScheme).String())
signature := blsSigScheme.Sign(dataToSign) signature := sigScheme.Sign(dataToSign)
assert.Equal(t, blsSigScheme.Address(), signature.Address()) assert.Equal(t, sigScheme.Address(), signature.Address())
res := signature.IsValid(dataToSign) res := signature.IsValid(dataToSign)
assert.Equal(t, res, true) 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 // number of signatures to aggregate
const numSigs = 100 const numSigs = 100
...@@ -29,16 +50,13 @@ func TestBLS_aggregation(t *testing.T) { ...@@ -29,16 +50,13 @@ func TestBLS_aggregation(t *testing.T) {
sigSchemes[i] = RandBLS() sigSchemes[i] = RandBLS()
sigs[i] = sigSchemes[i].Sign(dataToSign) 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, err, nil)
assert.Equal(t, a01.IsValid(dataToSign), true)
assert.Equal(t, aggregatedSig1.IsValid(dataToSign), true) // aggregate N signatures
aN, err := AggregateBLSSignatures(sigs...)
aggregatedScheme, err := AggregateBLSSignatureSchemes(sigSchemes...)
assert.Equal(t, err, nil) assert.Equal(t, err, nil)
assert.Equal(t, aN.IsValid(dataToSign), true)
if err == nil {
aggregatedSig2 := aggregatedScheme.Sign(dataToSign)
assert.Equal(t, aggregatedSig2, aggregatedSig2)
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment