github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/whisper/whisperv6/envelope_test.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 19:16:46</date> 10 //</624450125288181760> 11 12 13 //包含与Whisper协议信封对象关联的测试。 14 15 package whisperv6 16 17 import ( 18 mrand "math/rand" 19 "testing" 20 21 "github.com/ethereum/go-ethereum/crypto" 22 ) 23 24 func TestEnvelopeOpenAcceptsOnlyOneKeyTypeInFilter(t *testing.T) { 25 symKey := make([]byte, aesKeyLength) 26 mrand.Read(symKey) 27 28 asymKey, err := crypto.GenerateKey() 29 if err != nil { 30 t.Fatalf("failed GenerateKey with seed %d: %s.", seed, err) 31 } 32 33 params := MessageParams{ 34 PoW: 0.01, 35 WorkTime: 1, 36 TTL: uint32(mrand.Intn(1024)), 37 Payload: make([]byte, 50), 38 KeySym: symKey, 39 Dst: nil, 40 } 41 42 mrand.Read(params.Payload) 43 44 msg, err := NewSentMessage(¶ms) 45 if err != nil { 46 t.Fatalf("failed to create new message with seed %d: %s.", seed, err) 47 } 48 49 e, err := msg.Wrap(¶ms) 50 if err != nil { 51 t.Fatalf("Failed to Wrap the message in an envelope with seed %d: %s", seed, err) 52 } 53 54 f := Filter{KeySym: symKey, KeyAsym: asymKey} 55 56 decrypted := e.Open(&f) 57 if decrypted != nil { 58 t.Fatalf("Managed to decrypt a message with an invalid filter, seed %d", seed) 59 } 60 } 61