diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-02-19 18:53:50 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-02-19 18:53:50 +0800 |
commit | 17649edd85b98f00f781415ff02da8441e52db99 (patch) | |
tree | a19b7765292e768933d4aade498fc6e711c0ef84 /crypto/ecies/ecies_test.go | |
parent | aa36a6ae4f24f07e2c470a21c93ff37ad5861982 (diff) | |
parent | 7d8155714b41cda27fd2c860361c36d33e89d0a9 (diff) | |
download | dexon-17649edd85b98f00f781415ff02da8441e52db99.tar dexon-17649edd85b98f00f781415ff02da8441e52db99.tar.gz dexon-17649edd85b98f00f781415ff02da8441e52db99.tar.bz2 dexon-17649edd85b98f00f781415ff02da8441e52db99.tar.lz dexon-17649edd85b98f00f781415ff02da8441e52db99.tar.xz dexon-17649edd85b98f00f781415ff02da8441e52db99.tar.zst dexon-17649edd85b98f00f781415ff02da8441e52db99.zip |
Merge pull request #2226 from fjl/eip-8
p2p, p2p/discover: EIP-8 changes
Diffstat (limited to 'crypto/ecies/ecies_test.go')
-rw-r--r-- | crypto/ecies/ecies_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/crypto/ecies/ecies_test.go b/crypto/ecies/ecies_test.go index 6a0ea3f02..cb09061ce 100644 --- a/crypto/ecies/ecies_test.go +++ b/crypto/ecies/ecies_test.go @@ -408,6 +408,36 @@ func TestEncryptDecrypt(t *testing.T) { } } +func TestDecryptShared2(t *testing.T) { + prv, err := GenerateKey(rand.Reader, DefaultCurve, nil) + if err != nil { + t.Fatal(err) + } + message := []byte("Hello, world.") + shared2 := []byte("shared data 2") + ct, err := Encrypt(rand.Reader, &prv.PublicKey, message, nil, shared2) + if err != nil { + t.Fatal(err) + } + + // Check that decrypting with correct shared data works. + pt, err := prv.Decrypt(rand.Reader, ct, nil, shared2) + if err != nil { + t.Fatal(err) + } + if !bytes.Equal(pt, message) { + t.Fatal("ecies: plaintext doesn't match message") + } + + // Decrypting without shared data or incorrect shared data fails. + if _, err = prv.Decrypt(rand.Reader, ct, nil, nil); err == nil { + t.Fatal("ecies: decrypting without shared data didn't fail") + } + if _, err = prv.Decrypt(rand.Reader, ct, nil, []byte("garbage")); err == nil { + t.Fatal("ecies: decrypting with incorrect shared data didn't fail") + } +} + // TestMarshalEncryption validates the encode/decode produces a valid // ECIES encryption key. func TestMarshalEncryption(t *testing.T) { |