aboutsummaryrefslogtreecommitdiff
path: root/src/feature/dirauth
AgeCommit message (Collapse)Author
2021-11-05Merge branch 'maint-0.4.5' into maint-0.4.6David Goulet
2021-11-05protover: Fix merge forward from 035David Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-05Merge branch 'maint-0.3.5' into maint-0.4.5David Goulet
2021-11-05protover: Move all hardcoded lists in one placeDavid Goulet
This also moves the warnings and add some theatrical effect around the code so anyone modifying those list should notice the warnings signs and read the comment accordingly. Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-05Add scary warnings about changing the protover list.Nick Mathewson
Doing this in the wrong way has potential to cause serious havoc on the network, so let's make it harder for future programmers to mess it up.
2021-03-24fix up the keypinning commentsRoger Dingledine
2021-03-15Merge branch 'maint-0.4.4' into maint-0.4.5Nick Mathewson
2021-03-15Merge branch 'maint-0.4.5'Nick Mathewson
2021-03-15Merge branch 'maint-0.3.5' into maint-0.4.4Nick Mathewson
2021-03-15Fix detection of point to insert signatures on a pending consensus.Nick Mathewson
We were looking for the first instance of "directory-signature " when instead the correct behavior is to look for the first instance of "directory-signature " at the start of a line. Unfortunately, this can be exploited as to crash authorities while they're voting. Fixes #40316; bugfix on 0.2.2.4-alpha. This is TROVE-2021-002, also tracked as CVE-2021-28090.
2021-03-12Update copyrights to 2021, using "make update-copyright"Nick Mathewson
2021-02-19Make dirauths vote the Sybil flag when other flags are zeroed outNeel Chauhan
2021-02-03Add missing newline between get_all_possible_sybil() and version_from_platform()Neel Chauhan
2021-01-21Merge branch 'maint-0.4.5'David Goulet
2021-01-21log more during consensus voting processRoger Dingledine
Give more visibility to directory authority operators during the consensus voting process. Closes ticket 40245.
2021-01-21dir auths write consensuses to disk after creationRoger Dingledine
This step happens after we make each consensus flavor, and before we worry about sigs or anything. That way if Tor crashes, or if we fail to get enough sigs, we still have a chance to know what consensus we wanted to make.
2021-01-21log more about testing incoming relay descriptorsRoger Dingledine
2021-01-19Merge branch 'maint-0.4.5'Nick Mathewson
2021-01-15Revert "IPv6 sybil: consider addresses in the same /64 to be equal."David Goulet
This reverts commit d07f17f67685d75fec8a851b3ae3d157c1e31aa3. We don't want to consider an entire routable IPv6 network as sybil if more than 2 relays happen to be on it. For path selection it is very important but not for selecting relays in the consensus. Fixes #40243
2021-01-13New consensus method to find bwweightscale & maxunmeasuredbw correctly.Nick Mathewson
Our original code for parsing these parameters out of our list of parameters pre-dated us having the dirvote_get_intermediate_param_value() function... and it was buggy. Specifically, it would reject any " ... K=V ..." value where there were additional unconverted characters after the V, and use the default value instead, We haven't run into this yet because we've never voted for bwweightscale to be anything besides the default 10000, or maxunmeasuredbw to be anything besides the default 20. This requires a new consensus method because it is a change in how consensuses are computed. Fixes bug 19011; bugfix on 0.2.2.10-alpha.
2020-11-12Fix typos.Samanta Navarro
Typos found with codespell. Please keep in mind that this should have impact on actual code and must be carefully evaluated: src/core/or/lttng_circuit.inc - ctf_enum_value("CONTROLER", CIRCUIT_PURPOSE_CONTROLLER) + ctf_enum_value("CONTROLLER", CIRCUIT_PURPOSE_CONTROLLER)
2020-10-27Merge branch 'tor-gitlab/mr/176' into maint-0.4.4David Goulet
2020-10-27Merge branch 'tor-gitlab/mr/176'David Goulet
2020-10-26Merge branch 'maint-0.4.4'Nick Mathewson
2020-10-23Update required/recommended protocol lists more systematicallyNick Mathewson
First I began with a set of candidates: The client's _required_ list starts with all the protocols supported by every release in 0.2.9-stable through current master. The client's _required_ list starts with all the protocols supported by every release in 0.3.5-stable through current master. Everybody's _recommended_ list starts with all the protocols supported by every release in 0.3.5-stable through current master. Then I removed the protocol versions that we do not actually want to require or recommend: DirCache=1 (deprecated) HSDir=1, HSIntro=1-3, HSRend=1 (deprecated) (All HS* protocol requirements for clients) Link=1-3 (deprecated) LinkAuth=1 (obsolete) Relay=1 (obsolete)
2020-10-22Turn ConsensusParams into a LinelistRoger Dingledine
Make it possible to specify multiple ConsensusParams torrc lines. Now directory authority operators can for example put the main ConsensusParams config in one torrc file and then add to it from a different torrc file. Closes ticket 40164.
2020-10-18Update required/recommended protocol versions.Nick Mathewson
Cons=1 is the old format of consensuses, without ed25519 keys. It is no longer required or recommended. Cons=2 is the new format of consensuses, with ed25519 keys. It is now required. (Similarly for Desc=1,2 and Microdesc=1,2) No supported client or relay versions should be affected by this change, since these versions are supported by clients and relays running 0.2.9 and later. It will only take effect once enough authorities vote for it. Closes ticket 40162.
2020-10-18Split required/recommended protocol lists into multiple linesNick Mathewson
This should make diffs easier to read.
2020-09-23Fix memory leak in vote generationNick Mathewson
2020-09-23Move a DIGESTMAP_FOREACH_END (cosmetic)Nick Mathewson
2020-09-23IPv6 sybil: consider addresses in the same /64 to be equal.Nick Mathewson
2020-09-23Refactor address comparison in get_sybil_list_by_ip_versionNick Mathewson
2020-09-23get_all_possible_sybil: small indentation and comment cleanupsNick Mathewson
2020-09-23Remove needless sort operation.Nick Mathewson
2020-09-23Tidy up compare_routerinfo_by_ipv{4,6} to match better.Nick Mathewson
2020-09-23Fix memory leaks.Nick Mathewson
2020-09-23Implement IPv6 sybil protection.vnepveu
[This is a squashed patch for ticket 7193, based on taking a "git diff" for the original branch, then applying it with "git apply -3". I earlier attempted to squash the branch with "git rebase", but there were too many conflicts. --nickm]
2020-08-03Rename protover_contains_long_protocol_names to protover_list_is_invalidNick Mathewson
This is an automated commit, generated by this command: ./scripts/maint/rename_c_identifier.py \ protover_contains_long_protocol_names protover_list_is_invalid
2020-07-23Merge branch 'remove-padding-fix-7869-v2'Nick Mathewson
2020-07-23Remove padding from ntor-onion-key #7869Daniel Pinto
2020-07-21Rename router_get_advertised_*() functions.Nick Mathewson
These now (or_port and dir_port) now have "find" names, since they look at the portcfg first, then at the actual ports from the listeners. This is an automated commit, generated by this command: ./scripts/maint/rename_c_identifier.py \ router_get_advertised_or_port routerconf_find_or_port \ router_get_advertised_ipv6_or_ap routerconf_find_ipv6_or_ap \ router_has_advertised_ipv6_orport routerconf_has_ipv6_orport \ router_get_advertised_dir_port routerconf_find_dir_port
2020-07-21Combine router_get_advertised_or_port{,by_af_}() functionsNick Mathewson
2020-07-14addr: Use tor_addr_t instead of uint32_t for IPv4David Goulet
This changes a LOT of code but in the end, behavior is the same. Unfortunately, many functions had to be changed to accomodate but in majority of cases, to become simpler. Functions are also removed specifically those that were there to convert an IPv4 as a host format to a tor_addr_t. Those are not needed anymore. The IPv4 address field has been standardized to "ipv4_addr", the ORPort to "ipv4_orport" (currently IPv6 uses ipv6_orport) and DirPort to "ipv4_dirport". This is related to Sponsor 55 work that adds IPv6 support for relays and this work is needed in order to have a common interface between IPv4 and IPv6. Closes #40043. Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-07-06Merge remote-tracking branch 'tor-github/pr/1938/head'Nick Mathewson
2020-06-26Remove special authority semantics for AssumeReachable.Nick Mathewson
AssumeReachable should only be about whether a relay thinks that it is reachable itself. But previously, we've had it also turn off reachability checking of _other_ relays on authorities. (Technically, reachability tests were still run, but we would ignore the results.) With this patch, there is a new AuthDirTestReachability option (default 1) that controls whether authorities run reachability tests. Making this change allows us to have test networks where authorities set AssumeReachable without disabling their reachability testing entirely. Closes ticket #34445.
2020-06-24addr: Remove resolve_my_address_v4()David Goulet
Replace it by find_my_address() everywhere. This changes many parts of the code that uses it to use a tor_addr_t instead of a plain uint32_t for IPv4. Many changes to the unit test to also use the new interface. Part #33233 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-06-23addr: Rename resolve_my_address to be v4 specificDavid Goulet
Part of #33233 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-06-17Reject Tor relays running the 0.4.1 seriesNeel Chauhan
2020-06-17Update the list of recommended protocol versions to match >=0.3.5.Nick Mathewson
Since Tor 0.2.9 has been unsupported since January, 0.3.5 is the oldest supported version, and its features constitute the oldest recommended feature-set. This patch updates these recommendations: DirCache=2 Support for consensus diffs. New in 0.3.1.1-alpha. HSDir=2 Support for v3 onion service descriptors. New in 0.3.0.4-alpha. HSIntro=4 Support for Ed25519 intropoint authentication keys. New in 0.3.0-4-alpha. HSRend=2 Support for rendezvous cells longer than 20 bytes. New in 0.2.9.4-alpha. Link=5 Link padding and link padding negotiation. New in 0.3.3.2-alpha. LinkAuth=3 Ed25519 link authentication. New in 0.3.0.1-alpha.
2020-06-17Spelling fix: "RECCOMEND" => "RECOMMEND".Nick Mathewson