diff options
author | obscuren <geffobscura@gmail.com> | 2014-12-10 21:17:32 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-12-10 21:17:32 +0800 |
commit | dda778eda7ad9b94acf14c3c91c1c29e711e170f (patch) | |
tree | dfbb71a45399455fd2c2bb77ce72c8ce9d79ba45 /whisper/messages_test.go | |
parent | 0f5c6c5e2daa9fbf3a0bb753debd8989a872823c (diff) | |
download | dexon-dda778eda7ad9b94acf14c3c91c1c29e711e170f.tar.gz dexon-dda778eda7ad9b94acf14c3c91c1c29e711e170f.tar.zst dexon-dda778eda7ad9b94acf14c3c91c1c29e711e170f.zip |
Updated whisper messages to new crypto api + added tests
Diffstat (limited to 'whisper/messages_test.go')
-rw-r--r-- | whisper/messages_test.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/whisper/messages_test.go b/whisper/messages_test.go new file mode 100644 index 000000000..cba103011 --- /dev/null +++ b/whisper/messages_test.go @@ -0,0 +1,51 @@ +package whisper + +import ( + "bytes" + "crypto/elliptic" + "fmt" + "testing" + + "github.com/ethereum/go-ethereum/crypto" +) + +func TestSign(t *testing.T) { + prv, _ := crypto.GenerateKey() + msg := NewMessage([]byte("hello world")) + msg.sign(prv) + + pubKey := msg.Recover() + p1 := elliptic.Marshal(crypto.S256(), prv.PublicKey.X, prv.PublicKey.Y) + p2 := elliptic.Marshal(crypto.S256(), pubKey.X, pubKey.Y) + + if !bytes.Equal(p1, p2) { + t.Error("recovered pub key did not match") + } +} + +func TestMessageEncryptDecrypt(t *testing.T) { + prv1, _ := crypto.GenerateKey() + prv2, _ := crypto.GenerateKey() + + data := []byte("hello world") + msg := NewMessage(data) + envelope, err := msg.Seal(DefaultPow, Opts{ + From: prv1, + To: &prv2.PublicKey, + }) + if err != nil { + fmt.Println(err) + t.FailNow() + } + + msg1, err := envelope.Open(prv2) + if err != nil { + fmt.Println(err) + t.FailNow() + } + + if !bytes.Equal(msg1.Payload, data) { + fmt.Println("encryption error. data did not match") + t.FailNow() + } +} |