summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@jerkface.net>2017-10-27 17:39:30 -0400
committerjoe <joe@jerkface.net>2017-10-27 17:39:30 -0400
commite2e69ffc55abdd6df9e6f328ee867d8ed6639322 (patch)
tree319cd538e88ade2138d7614f6d5235edeb384feb
parent50d3bb1fc90c4d83d390fa2c5b328935d0ffed1d (diff)
Added TODO regarding Tox "Hardening" message.
-rw-r--r--examples/dhtd.hs1
-rw-r--r--src/Network/Tox/DHT/Transport.hs12
-rw-r--r--todo.txt2
3 files changed, 15 insertions, 0 deletions
diff --git a/examples/dhtd.hs b/examples/dhtd.hs
index ea2b3459..9966fb32 100644
--- a/examples/dhtd.hs
+++ b/examples/dhtd.hs
@@ -164,6 +164,7 @@ loadNodes netname = do
164 >>= maybe (ioError $ userError "Nothing") return 164 >>= maybe (ioError $ userError "Nothing") return
165 either (const $ fallbackLoad fname) return attempt 165 either (const $ fallbackLoad fname) return attempt
166 166
167fallbackLoad :: FromJSON t => FilePath -> IO [t]
167fallbackLoad fname = do 168fallbackLoad fname = do
168 attempt <- tryIOError $ do 169 attempt <- tryIOError $ do
169 J.decode <$> L.readFile fname 170 J.decode <$> L.readFile fname
diff --git a/src/Network/Tox/DHT/Transport.hs b/src/Network/Tox/DHT/Transport.hs
index b7982a1a..6009afa2 100644
--- a/src/Network/Tox/DHT/Transport.hs
+++ b/src/Network/Tox/DHT/Transport.hs
@@ -174,6 +174,16 @@ data DHTRequest
174 -- `8` `uint64_t` random number (the same that was received in request) 174 -- `8` `uint64_t` random number (the same that was received in request)
175 | NATPong Nonce8 175 | NATPong Nonce8
176 | DHTPK LongTermKeyWrap 176 | DHTPK LongTermKeyWrap
177 -- From docs/Hardening_docs.txt
178 --
179 -- All hardening requests must contain exactly 384 bytes of data. (The data sent
180 -- must be padded with zeros if it is smaller than that.)
181 --
182 -- [byte with value: 02 (get nodes test request)][struct Node_format (the node to
183 -- test.)][client_id(32 bytes) the id to query the node with.][padding]
184 --
185 -- packet id: CRYPTO_PACKET_HARDENING (48)
186 | Hardening -- TODO
177 deriving Show 187 deriving Show
178 188
179instance Sized DHTRequest where 189instance Sized DHTRequest where
@@ -193,10 +203,12 @@ instance Serialize DHTRequest where
193 direction <- get 203 direction <- get
194 bool NATPong NATPing (direction==(0::Word8)) <$> get 204 bool NATPong NATPing (direction==(0::Word8)) <$> get
195 0x9c -> DHTPK <$> get 205 0x9c -> DHTPK <$> get
206 0x30 -> pure Hardening -- TODO: CRYPTO_PACKET_HARDENING
196 _ -> fail ("unrecognized DHT request: "++show tag) 207 _ -> fail ("unrecognized DHT request: "++show tag)
197 put (NATPing n) = put (0xfe00 :: Word16) >> put n 208 put (NATPing n) = put (0xfe00 :: Word16) >> put n
198 put (NATPong n) = put (0xfe01 :: Word16) >> put n 209 put (NATPong n) = put (0xfe01 :: Word16) >> put n
199 put (DHTPK pk) = put (0x9c :: Word8) >> put pk 210 put (DHTPK pk) = put (0x9c :: Word8) >> put pk
211 put (Hardening) = put (0x30 :: Word8) >> putByteString (B.replicate 384 0) -- TODO
200 212
201-- DHT public key packet: 213-- DHT public key packet:
202-- (As Onion data packet?) 214-- (As Onion data packet?)
diff --git a/todo.txt b/todo.txt
index ecb9a46e..b5e7ed04 100644
--- a/todo.txt
+++ b/todo.txt
@@ -15,6 +15,8 @@ tox: fallback to https://nodes.tox.chat/json
15 15
16tox: bootstrap motd query 16tox: bootstrap motd query
17 17
18tox: hardening get-nodes test request.
19
18tox: nat ping 20tox: nat ping
19 21
20tox: base64 read/show 22tox: base64 read/show