aboutsummaryrefslogtreecommitdiffstats
path: root/whisper/messages_test.go
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2014-12-22 02:06:24 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2014-12-22 02:06:24 +0800
commitbab78bbeb691d95bdd0222435af0c11cb3485a79 (patch)
tree804c9689546ce362a2862b00bb4e76160052f5d6 /whisper/messages_test.go
parent7a79428278412ab1f73708af51bce063b000b7a7 (diff)
parent1360f027d9e365242466ca346b2b56f421729d91 (diff)
downloaddexon-bab78bbeb691d95bdd0222435af0c11cb3485a79.tar
dexon-bab78bbeb691d95bdd0222435af0c11cb3485a79.tar.gz
dexon-bab78bbeb691d95bdd0222435af0c11cb3485a79.tar.bz2
dexon-bab78bbeb691d95bdd0222435af0c11cb3485a79.tar.lz
dexon-bab78bbeb691d95bdd0222435af0c11cb3485a79.tar.xz
dexon-bab78bbeb691d95bdd0222435af0c11cb3485a79.tar.zst
dexon-bab78bbeb691d95bdd0222435af0c11cb3485a79.zip
Merge branch 'tests' of github.com:ethereum/go-ethereum into tests
Diffstat (limited to 'whisper/messages_test.go')
-rw-r--r--whisper/messages_test.go51
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()
+ }
+}