Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
66cd41af
Unverified
Commit
66cd41af
authored
Mar 03, 2018
by
gluk256
Committed by
GitHub
Mar 03, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #16231 from gluk256/303-reader
whisper: filereader mode introduced to wnode
parents
fa375955
6219a338
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
0 deletions
+41
-0
main.go
cmd/wnode/main.go
+37
-0
envelope.go
whisper/whisperv6/envelope.go
+4
-0
No files found.
cmd/wnode/main.go
View file @
66cd41af
...
...
@@ -86,6 +86,7 @@ var (
asymmetricMode
=
flag
.
Bool
(
"asym"
,
false
,
"use asymmetric encryption"
)
generateKey
=
flag
.
Bool
(
"generatekey"
,
false
,
"generate and show the private key"
)
fileExMode
=
flag
.
Bool
(
"fileexchange"
,
false
,
"file exchange mode"
)
fileReader
=
flag
.
Bool
(
"filereader"
,
false
,
"load and decrypt messages saved as files, display as plain text"
)
testMode
=
flag
.
Bool
(
"test"
,
false
,
"use of predefined parameters for diagnostics (password, etc.)"
)
echoMode
=
flag
.
Bool
(
"echo"
,
false
,
"echo mode: prints some arguments for diagnostics"
)
...
...
@@ -433,6 +434,8 @@ func run() {
requestExpiredMessagesLoop
()
}
else
if
*
fileExMode
{
sendFilesLoop
()
}
else
if
*
fileReader
{
fileReaderLoop
()
}
else
{
sendLoop
()
}
...
...
@@ -483,6 +486,40 @@ func sendFilesLoop() {
}
}
func
fileReaderLoop
()
{
watcher1
:=
shh
.
GetFilter
(
symFilterID
)
watcher2
:=
shh
.
GetFilter
(
asymFilterID
)
if
watcher1
==
nil
&&
watcher2
==
nil
{
fmt
.
Println
(
"Error: neither symmetric nor asymmetric filter is installed"
)
close
(
done
)
return
}
for
{
s
:=
scanLine
(
""
)
if
s
==
quitCommand
{
fmt
.
Println
(
"Quit command received"
)
close
(
done
)
return
}
raw
,
err
:=
ioutil
.
ReadFile
(
s
)
if
err
!=
nil
{
fmt
.
Printf
(
">>> Error: %s
\n
"
,
err
)
}
else
{
env
:=
whisper
.
Envelope
{
Data
:
raw
}
// the topic is zero
msg
:=
env
.
Open
(
watcher1
)
// force-open envelope regardless of the topic
if
msg
==
nil
{
msg
=
env
.
Open
(
watcher2
)
}
if
msg
==
nil
{
fmt
.
Printf
(
">>> Error: failed to decrypt the message
\n
"
)
}
else
{
printMessageInfo
(
msg
)
}
}
}
}
func
scanLine
(
prompt
string
)
string
{
if
len
(
prompt
)
>
0
{
fmt
.
Print
(
prompt
)
...
...
whisper/whisperv6/envelope.go
View file @
66cd41af
...
...
@@ -208,6 +208,10 @@ func (e *Envelope) OpenSymmetric(key []byte) (msg *ReceivedMessage, err error) {
// Open tries to decrypt an envelope, and populates the message fields in case of success.
func
(
e
*
Envelope
)
Open
(
watcher
*
Filter
)
(
msg
*
ReceivedMessage
)
{
if
watcher
==
nil
{
return
nil
}
// The API interface forbids filters doing both symmetric and asymmetric encryption.
if
watcher
.
expectsAsymmetricEncryption
()
&&
watcher
.
expectsSymmetricEncryption
()
{
return
nil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment