From df33a4bbd574770b0028c978f8cfba30082fc592 Mon Sep 17 00:00:00 2001 From: arnaucube Date: Mon, 3 Jun 2019 20:37:03 +0200 Subject: [PATCH] add travis --- .travis.yml | 8 ++++++++ README.md | 3 ++- bls/bls.go | 20 +++++++++----------- paillier/paillier_test.go | 18 ++++++++++++++++-- 4 files changed, 35 insertions(+), 14 deletions(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..715bb59 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,8 @@ +language: go + +go: + - "1.12" + +env: + - GO111MODULE=on + diff --git a/README.md b/README.md index c9fc804..18d67c0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -# cryptofun [![Go Report Card](https://goreportcard.com/badge/github.com/arnaucube/cryptofun)](https://goreportcard.com/report/github.com/arnaucube/cryptofun) +# cryptofun [![Go Report Card](https://goreportcard.com/badge/github.com/arnaucube/cryptofun)](https://goreportcard.com/report/github.com/arnaucube/cryptofun) [![Build Status](https://travis-ci.org/arnaucube/cryptofun.svg?branch=master)](https://travis-ci.org/arnaucube/cryptofun) + Crypto algorithms from scratch. Academic purposes only. diff --git a/bls/bls.go b/bls/bls.go index a0f9f22..2011a3d 100644 --- a/bls/bls.go +++ b/bls/bls.go @@ -92,26 +92,24 @@ func (bls BLS) AggregateSignatures(signatures ...[3][2]*big.Int) [3][2]*big.Int // VerifyAggregatedSignatures // ê(G,S) == ê(P, H(m)) -// ê(G, s0+s1+s2...) == ê(p0, H(m)) x ê(p1, H(m)) x ê(p2, H(m)) ... +// ê(G, s0+s1+s2...) == ê(p0+p1+p2..., H(m)) func (bls BLS) VerifyAggregatedSignatures(aggrsig [3][2]*big.Int, pubKArray [][3]*big.Int, m []byte) bool { - pairingGS, err := bls.Bn.Pairing(bls.Bn.G1.G, aggrsig) + aggrPubKs := pubKArray[0] + for i := 1; i < len(pubKArray); i++ { + aggrPubKs = bls.Bn.G1.Add(aggrPubKs, pubKArray[i]) + } + + left, err := bls.Bn.Pairing(bls.Bn.G1.G, aggrsig) if err != nil { return false } - pairingsMul, err := bls.Bn.Pairing(pubKArray[0], bls.Hash(m)) + right, err := bls.Bn.Pairing(aggrPubKs, bls.Hash(m)) if err != nil { return false } - for i := 1; i < len(pubKArray); i++ { - e, err := bls.Bn.Pairing(pubKArray[i], bls.Hash(m)) - if err != nil { - return false - } - pairingsMul = bls.Bn.Fq12.Mul(pairingsMul, e) - } - if !bls.Bn.Fq12.Equal(pairingGS, pairingsMul) { + if !bls.Bn.Fq12.Equal(left, right) { return false } return true diff --git a/paillier/paillier_test.go b/paillier/paillier_test.go index 3a4598d..c7de28c 100644 --- a/paillier/paillier_test.go +++ b/paillier/paillier_test.go @@ -24,8 +24,22 @@ func TestEncryptDecrypt(t *testing.T) { } func TestHomomorphicAddition(t *testing.T) { - key, err := GenerateKeyPair() - assert.Nil(t, err) + // key, err := GenerateKeyPair() + // assert.Nil(t, err) + + // key harcoded for tests + pubK := PublicKey{ + N: big.NewInt(204223), + G: big.NewInt(24929195694), + } + privK := PrivateKey{ + Lambda: big.NewInt(101660), + Mu: big.NewInt(117648), + } + key := Key{ + PubK: pubK, + PrivK: privK, + } n1 := big.NewInt(int64(110)) n2 := big.NewInt(int64(150))