| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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 {
- t.Error(err)
- t.FailNow()
- }
- if !bytes.Equal(msg1.Payload, data) {
- t.Error("encryption error. data did not match")
- }
- }
|