diff options
author | Guillaume Ballet <gballet@gmail.com> | 2017-12-08 18:40:59 +0800 |
---|---|---|
committer | Felix Lange <fjl@users.noreply.github.com> | 2017-12-08 18:40:59 +0800 |
commit | d95962cd5d3ea163f8e91d7a9ca2f6303799b2e2 (patch) | |
tree | 7255f029c04eb4e66e07b757c1ef44ecd1edb986 /whisper/whisperv6/envelope_test.go | |
parent | b5874273cec729adce84acf5848536d20fb60f7c (diff) | |
download | go-tangerine-d95962cd5d3ea163f8e91d7a9ca2f6303799b2e2.tar go-tangerine-d95962cd5d3ea163f8e91d7a9ca2f6303799b2e2.tar.gz go-tangerine-d95962cd5d3ea163f8e91d7a9ca2f6303799b2e2.tar.bz2 go-tangerine-d95962cd5d3ea163f8e91d7a9ca2f6303799b2e2.tar.lz go-tangerine-d95962cd5d3ea163f8e91d7a9ca2f6303799b2e2.tar.xz go-tangerine-d95962cd5d3ea163f8e91d7a9ca2f6303799b2e2.tar.zst go-tangerine-d95962cd5d3ea163f8e91d7a9ca2f6303799b2e2.zip |
whisper/whisperv6: remove aesnonce (#15578)
As per EIP-627, the salt for symmetric encryption is now
part of the payload. This commit does that.
Diffstat (limited to 'whisper/whisperv6/envelope_test.go')
-rw-r--r-- | whisper/whisperv6/envelope_test.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/whisper/whisperv6/envelope_test.go b/whisper/whisperv6/envelope_test.go new file mode 100644 index 000000000..410b250a3 --- /dev/null +++ b/whisper/whisperv6/envelope_test.go @@ -0,0 +1,64 @@ +// Copyright 2017 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. + +// Contains the tests associated with the Whisper protocol Envelope object. + +package whisperv6 + +import ( + mrand "math/rand" + "testing" + + "github.com/ethereum/go-ethereum/crypto" +) + +func TestEnvelopeOpenAcceptsOnlyOneKeyTypeInFilter(t *testing.T) { + symKey := make([]byte, aesKeyLength) + mrand.Read(symKey) + + asymKey, err := crypto.GenerateKey() + if err != nil { + t.Fatalf("failed GenerateKey with seed %d: %s.", seed, err) + } + + params := MessageParams{ + PoW: 0.01, + WorkTime: 1, + TTL: uint32(mrand.Intn(1024)), + Payload: make([]byte, 50), + KeySym: symKey, + Dst: nil, + } + + mrand.Read(params.Payload) + + msg, err := NewSentMessage(¶ms) + if err != nil { + t.Fatalf("failed to create new message with seed %d: %s.", seed, err) + } + + e, err := msg.Wrap(¶ms) + if err != nil { + t.Fatalf("Failed to Wrap the message in an envelope with seed %d: %s", seed, err) + } + + f := Filter{KeySym: symKey, KeyAsym: asymKey} + + decrypted := e.Open(&f) + if decrypted != nil { + t.Fatalf("Managed to decrypt a message with an invalid filter, seed %d", seed) + } +} |