github.com/karalabe/go-ethereum@v0.8.5/crypto/encrypt_decrypt_test.go (about)

     1  package crypto
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"testing"
     7  
     8  	"github.com/ethereum/go-ethereum/ethutil"
     9  )
    10  
    11  func TestBox(t *testing.T) {
    12  	prv1 := ToECDSA(ethutil.Hex2Bytes("4b50fa71f5c3eeb8fdc452224b2395af2fcc3d125e06c32c82e048c0559db03f"))
    13  	prv2 := ToECDSA(ethutil.Hex2Bytes("d0b043b4c5d657670778242d82d68a29d25d7d711127d17b8e299f156dad361a"))
    14  	pub2 := ToECDSAPub(ethutil.Hex2Bytes("04bd27a63c91fe3233c5777e6d3d7b39204d398c8f92655947eb5a373d46e1688f022a1632d264725cbc7dc43ee1cfebde42fa0a86d08b55d2acfbb5e9b3b48dc5"))
    15  
    16  	message := []byte("Hello, world.")
    17  	ct, err := Encrypt(pub2, message)
    18  	if err != nil {
    19  		fmt.Println(err.Error())
    20  		t.FailNow()
    21  	}
    22  
    23  	pt, err := Decrypt(prv2, ct)
    24  	if err != nil {
    25  		fmt.Println(err.Error())
    26  		t.FailNow()
    27  	}
    28  
    29  	if !bytes.Equal(pt, message) {
    30  		fmt.Println("ecies: plaintext doesn't match message")
    31  		t.FailNow()
    32  	}
    33  
    34  	_, err = Decrypt(prv1, pt)
    35  	if err == nil {
    36  		fmt.Println("ecies: encryption should not have succeeded")
    37  		t.FailNow()
    38  	}
    39  
    40  }