forked from Green-Sky/tomato
31 lines
1.6 KiB
Plaintext
31 lines
1.6 KiB
Plaintext
|
Hardening request packets are sent as crypto request packets (see crypto docs.)
|
||
|
NOTE: currently only get nodes requests are tested in the code which is why
|
||
|
there is only one test (more will be added soon.)
|
||
|
|
||
|
All hardening requests must contain exactly 768 bytes of data. (The data sent
|
||
|
must be padded with zeros if it is smaller than that.)
|
||
|
|
||
|
1. Get the information (IP_port, client_id) of the node we want to test.
|
||
|
2. Find a couple random nodes that is not that node (one for each test.)
|
||
|
3. Send crypto request packets to each of these random nodes with the data being:
|
||
|
|
||
|
[byte with value: 02 (get nodes test request)][struct Node_format (the node to
|
||
|
test.)][client_id(32 bytes) the id to query the node with.][padding]
|
||
|
|
||
|
4. The random node receives a packet.
|
||
|
-The packet is a get nodes test request:
|
||
|
send a get_node request to that node with the id to query in the request.
|
||
|
when a send_node response is received, send the following response to the
|
||
|
person who sent us the get nodes test request packet:
|
||
|
[byte with value: 03 (get nodes test response)][client_id(32 bytes):
|
||
|
the id of the tested node][The list of nodes it responded with in IPv6
|
||
|
Node format (struct Node_Format)]
|
||
|
PROTIP: (get node requests and response contain an encrypted part that you
|
||
|
can use to store information so that you don't
|
||
|
have to store in your memory where/if to send back the response from the
|
||
|
send node)
|
||
|
|
||
|
5. Receive the test responses.
|
||
|
-If the test(s) pass (the nodes behave in a satisfactory manner), make these
|
||
|
nodes have priority over those who don't pass the test(s).
|