- Aug 09, 2017
-
-
I repurposed the old directory_request_set_hs_ident() into a new directory_request_upload_set_hs_ident() which is only used for the upload purpose and so it can assert on the dir_purpose. When coding the client-side we can make a second function for fetch.
-
The structure was not zeroed out, and left some boolean fields uninitialized.
-
-
-
- Fix some more crazy ternary ops. - Fix the order of disaster SRV computation. - Whitespace fixes. - Remove a redundant warn. - Better docs.
-
We used to do: h = H(BLIND_STRING | H(A | s | B | N ) when we should be doing: h = H(BLIND_STRING | A | s | B | N) Change the logic so that hs_common.c does the hashing, and our ed25519 libraries just receive the hashed parameter ready-made. That's easier than doing the hashing on the ed25519 libraries, since that means we would have to pass them a variable-length param (depending on whether 's' is set or not). Also fix the ed25519 test vectors since they were also double hashing.
-
We also had to alter the SRV functions to take a consensus as optional input, since we might be setting our HSDir index using a consensus that is currently being processed and won't be returned by the networkstatus_get_live_consensus() function. This change has two results: a) It makes sure we are using a fresh consensus with the right SRV value when we are calculating the HSDir hash ring. b) It ensures that we will not use the sr_get_current/previous() functions when we don't have a consensus which would have falsely triggered the disaster SRV logic.
-
In Nick's words: "We want to always return false if the platform is a Tor version, and it is not as new as 0.3.0.8 -- but if the platform is not a Tor version, or if the version is as new as 0.3.0.8, then we want to obey the protocol list. That way, other implementations of our protocol won't have to claim any particular Tor version, and future versions of Tor will have the freedom to drop this protocol in the distant future."
-
- Fix log message format string. - Do extra circuit purpose check. - wipe memory in a clear function - Make sure we don't double add intro points in our list - Make sure we don't double close intro circuits. - s/tt_u64_op/tt_i64_op/
-
-
-
-
- Fix memleak.
-
-
-
-
-
-
-
We used to sizeof() a pointer. Let's just use asprintf to avoid having to be smart.
-
-
Also prepend period_length to any period_num, as specified by the spec.
-
Turns out that introduction points don't care about the INTRODUCE2 cell format as long as the top field is LEGACY_KEY_ID as expected. So let's use a single INTRODUCE format regardless of the introduction point being legacy or not. This also removes the polymorphic void* situation. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
To upload the descriptor we needed a state file to write the rev counters in, but that test did not have a state file initialized. Also fix the typo in its func name. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
We consider to be in overlap mode when we are in the period of time between a fresh SRV and the beginning of the new time period (in the normal network this is between 00:00 and 12:00 UTC). This commit edits that function to use the above semantic logic instead of absolute times. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
It used to be that time periods were 24 hours long even on chutney, which made testing harder. With this commit, time periods have the same length as a full SRV protocol run, which means that they will change every 4 minutes in a 10-second voting interval chutney network!
-
Instead use the SRV protocol duration to calculate the rotation offset that was previously hardcoded to 12 hours.
-
-
This is also needed to make the HS desc overlap mode function independent of absolute hours.
-
This function will be used to make the HS desc overlap function be independent of absolute times.
-
Because of bug #22447, we have to select nodes that are at least this version. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Make this function public so we can use it both in hs_circuit.c and hs_service.c to avoid code duplication. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
This introduces a callback to relaunch a service rendezvous circuit when a previous one failed to build or expired. It unifies the legacy function rend_service_relaunch_rendezvous() with one for specific to prop224. There is now only one entry point for that which is hs_circ_retry_service_rendezvous_point() supporting both legacy and prop224 circuits. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Change the timing for intro point's lifetime and maximum amount of circuit we are allowed to launch in a TestingNetwork. This is particurlarly useful for chutney testing to test intro point rotation. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
When the circuit is about to be freed which has been marked close before, for introduction circuit we now call this has_closed() callback so we can cleanup any introduction point that have retried to many times or at least flag them that their circuit is not established anymore. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Renamed to rend_num_services() so it is consistent with the legacy naming. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
We used to use NULL subcredential which is a terrible terrible idea. Refactor HS unittests to use subcredentials. Also add some non-fatal asserts to make sure that we always use subcredentials when decoding/encoding descs. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-