diff options
Diffstat (limited to 'whisper/envelope.go')
-rw-r--r-- | whisper/envelope.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/whisper/envelope.go b/whisper/envelope.go index 683e88128..dc8d3cda4 100644 --- a/whisper/envelope.go +++ b/whisper/envelope.go @@ -11,6 +11,7 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethutil" "github.com/ethereum/go-ethereum/rlp" + "github.com/obscuren/ecies" ) const ( @@ -76,7 +77,10 @@ func (self *Envelope) Open(prv *ecdsa.PrivateKey) (msg *Message, err error) { message.Payload = data[dataStart:] if prv != nil { message.Payload, err = crypto.Decrypt(prv, message.Payload) - if err != nil { + switch err { + case ecies.ErrInvalidPublicKey: // Payload isn't encrypted + return &message, err + default: return nil, fmt.Errorf("unable to open envelope. Decrypt failed: %v", err) } } |