github.com/digdeepmining/go-atheios@v1.5.13-0.20180902133602-d5687a2e6f43/crypto/encrypt_decrypt_test.go (about)

     1  // Copyright 2014 The go-ethereum Authors
     2  // This file is part of the go-ethereum library.
     3  //
     4  // The go-ethereum library is free software: you can redistribute it and/or modify
     5  // it under the terms of the GNU Lesser General Public License as published by
     6  // the Free Software Foundation, either version 3 of the License, or
     7  // (at your option) any later version.
     8  //
     9  // The go-ethereum library is distributed in the hope that it will be useful,
    10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    12  // GNU Lesser General Public License for more details.
    13  //
    14  // You should have received a copy of the GNU Lesser General Public License
    15  // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
    16  
    17  package crypto
    18  
    19  import (
    20  	"bytes"
    21  	"fmt"
    22  	"testing"
    23  
    24  	"github.com/atheioschain/go-atheios/common"
    25  )
    26  
    27  func TestBox(t *testing.T) {
    28  	prv1 := ToECDSA(common.Hex2Bytes("4b50fa71f5c3eeb8fdc452224b2395af2fcc3d125e06c32c82e048c0559db03f"))
    29  	prv2 := ToECDSA(common.Hex2Bytes("d0b043b4c5d657670778242d82d68a29d25d7d711127d17b8e299f156dad361a"))
    30  	pub2 := ToECDSAPub(common.Hex2Bytes("04bd27a63c91fe3233c5777e6d3d7b39204d398c8f92655947eb5a373d46e1688f022a1632d264725cbc7dc43ee1cfebde42fa0a86d08b55d2acfbb5e9b3b48dc5"))
    31  
    32  	message := []byte("Hello, world.")
    33  	ct, err := Encrypt(pub2, message)
    34  	if err != nil {
    35  		fmt.Println(err.Error())
    36  		t.FailNow()
    37  	}
    38  
    39  	pt, err := Decrypt(prv2, ct)
    40  	if err != nil {
    41  		fmt.Println(err.Error())
    42  		t.FailNow()
    43  	}
    44  
    45  	if !bytes.Equal(pt, message) {
    46  		fmt.Println("ecies: plaintext doesn't match message")
    47  		t.FailNow()
    48  	}
    49  
    50  	_, err = Decrypt(prv1, pt)
    51  	if err == nil {
    52  		fmt.Println("ecies: encryption should not have succeeded")
    53  		t.FailNow()
    54  	}
    55  
    56  }