From a96ba2af42d8c5107437656fc1b0a9c7f5c29d39 Mon Sep 17 00:00:00 2001 From: Vlad Date: Sat, 15 Apr 2017 23:28:52 +0200 Subject: [PATCH] whisper: padding test updated --- whisper/whisperv5/doc.go | 2 +- whisper/whisperv5/message_test.go | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/whisper/whisperv5/doc.go b/whisper/whisperv5/doc.go index ad3e3f009a..ff7754805b 100644 --- a/whisper/whisperv5/doc.go +++ b/whisper/whisperv5/doc.go @@ -56,7 +56,7 @@ const ( keyIdSize = 32 DefaultMaxMessageLength = 1024 * 1024 - DefaultMinimumPoW = 1.0 // todo: review after testing. + DefaultMinimumPoW = 1.0 padSizeLimit = 256 // just an arbitrary number, could be changed without breaking the protocol (must not exceed 2^24) messageQueueLimit = 1024 diff --git a/whisper/whisperv5/message_test.go b/whisper/whisperv5/message_test.go index c8b306c7f1..aa82a02f36 100644 --- a/whisper/whisperv5/message_test.go +++ b/whisper/whisperv5/message_test.go @@ -367,16 +367,17 @@ func singlePaddingTest(t *testing.T, padSize int) { if err != nil { t.Fatalf("failed generateMessageParams with seed %d and sz=%d: %s.", seed, padSize, err) } - params.Padding = make([]byte, padSize) params.PoW = 0.0000000001 pad := make([]byte, padSize) - mrand.Read(pad) - copy(params.Padding, pad) - if !bytes.Equal(pad, params.Padding) { - t.Fatalf("padding is not copied as expected with seed %d and sz=%d:\n[%x]\n[%x].", seed, padSize, pad, params.Padding) + _, err = mrand.Read(pad) + if err != nil { + t.Fatalf("padding is not generated (seed %d): %s", seed, err) + } + n := copy(params.Padding, pad) + if n != padSize { + t.Fatalf("padding is not copied (seed %d): %s", seed, err) } - msg, err := NewSentMessage(params) if err != nil { t.Fatalf("failed to create new message with seed %d: %s.", seed, err) @@ -385,7 +386,6 @@ func singlePaddingTest(t *testing.T, padSize int) { if err != nil { t.Fatalf("failed to wrap, seed: %d and sz=%d.", seed, padSize) } - f := Filter{KeySym: params.KeySym} decrypted := env.Open(&f) if decrypted == nil { @@ -408,5 +408,13 @@ func TestPadding(t *testing.T) { singlePaddingTest(t, i) } - // todo: add several in interval 256 < i < 256*256, and another several with i > 256*256 + for i := 0; i < 256; i++ { + n := mrand.Intn(256*254) + 256 + singlePaddingTest(t, n) + } + + for i := 0; i < 256; i++ { + n := mrand.Intn(256*1024) + 256*256 + singlePaddingTest(t, n) + } }