|
|
package paillier
import ( "bytes" "fmt" "math/big" "testing"
"github.com/stretchr/testify/assert" )
func TestEncryptDecrypt(t *testing.T) { key, err := GenerateKeyPair() assert.Nil(t, err)
mBytes := []byte("Hi") m := new(big.Int).SetBytes(mBytes) c := Encrypt(m, key.PubK) d := Decrypt(c, key.PubK, key.PrivK) if m == d { fmt.Println(key) t.Errorf("m not equal to decrypted") } }
func TestHomomorphicAddition(t *testing.T) { key, err := GenerateKeyPair() assert.Nil(t, err)
n1 := big.NewInt(int64(110)) n2 := big.NewInt(int64(150)) c1 := Encrypt(n1, key.PubK) c2 := Encrypt(n2, key.PubK) c3c4 := HomomorphicAddition(c1, c2, key.PubK) d := Decrypt(c3c4, key.PubK, key.PrivK) if !bytes.Equal(new(big.Int).Add(n1, n2).Bytes(), d.Bytes()) { fmt.Println(key) t.Errorf("decrypted result not equal to original result") } }
|