github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/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 12:09:51</date>
    10  //</624342690338705408>
    11  
    12  //
    13  //
    14  //
    15  //
    16  //
    17  //
    18  //
    19  //
    20  //
    21  //
    22  //
    23  //
    24  //
    25  //
    26  //
    27  
    28  //
    29  
    30  package whisperv6
    31  
    32  import (
    33  	mrand "math/rand"
    34  	"testing"
    35  
    36  	"github.com/ethereum/go-ethereum/crypto"
    37  )
    38  
    39  func TestEnvelopeOpenAcceptsOnlyOneKeyTypeInFilter(t *testing.T) {
    40  	symKey := make([]byte, aesKeyLength)
    41  	mrand.Read(symKey)
    42  
    43  	asymKey, err := crypto.GenerateKey()
    44  	if err != nil {
    45  		t.Fatalf("failed GenerateKey with seed %d: %s.", seed, err)
    46  	}
    47  
    48  	params := MessageParams{
    49  		PoW:      0.01,
    50  		WorkTime: 1,
    51  		TTL:      uint32(mrand.Intn(1024)),
    52  		Payload:  make([]byte, 50),
    53  		KeySym:   symKey,
    54  		Dst:      nil,
    55  	}
    56  
    57  	mrand.Read(params.Payload)
    58  
    59  	msg, err := NewSentMessage(&params)
    60  	if err != nil {
    61  		t.Fatalf("failed to create new message with seed %d: %s.", seed, err)
    62  	}
    63  
    64  	e, err := msg.Wrap(&params)
    65  	if err != nil {
    66  		t.Fatalf("Failed to Wrap the message in an envelope with seed %d: %s", seed, err)
    67  	}
    68  
    69  	f := Filter{KeySym: symKey, KeyAsym: asymKey}
    70  
    71  	decrypted := e.Open(&f)
    72  	if decrypted != nil {
    73  		t.Fatalf("Managed to decrypt a message with an invalid filter, seed %d", seed)
    74  	}
    75  }
    76