Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2020-06-13T15:03:36Zhttps://gitlab.torproject.org/legacy/trac/-/issues/20720prop271 -- Save persistent data in state file.2020-06-13T15:03:36ZNick Mathewsonprop271 -- Save persistent data in state file.Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/20574hs: Make a change file for #172382020-06-13T15:02:58ZDavid Gouletdgoulet@torproject.orghs: Make a change file for #17238Really big feature there so let's not forget the change file.Really big feature there so let's not forget the change file.Tor: 0.3.0.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/20573The build_mac() function in hs_descriptor.c should be made generic for the en...2020-06-13T15:02:58ZDavid Gouletdgoulet@torproject.orgThe build_mac() function in hs_descriptor.c should be made generic for the entire code baseMove `build_mac()` out of its file, put it in a common place, rename it with a better name and improve by adding the length of the salt and mac key to the construction so we don't assume fixed size length.Move `build_mac()` out of its file, put it in a common place, rename it with a better name and improve by adding the length of the salt and mac key to the construction so we don't assume fixed size length.Tor: 0.3.0.x-finalDavid Gouletdgoulet@torproject.orgDavid Gouletdgoulet@torproject.orghttps://gitlab.torproject.org/legacy/trac/-/issues/20570hs: Fix unit test of prop224 that is now being skipped2020-06-13T15:02:56ZDavid Gouletdgoulet@torproject.orghs: Fix unit test of prop224 that is now being skippedContext:
https://gitlab.com/dgoulet/tor/merge_requests/10#note_14998048
Cross certification is the issue.Context:
https://gitlab.com/dgoulet/tor/merge_requests/10#note_14998048
Cross certification is the issue.Tor: 0.3.0.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/20567hs: Document arguments of rend_data_service_create() and rend_data_client_cre...2020-06-13T15:02:54ZDavid Gouletdgoulet@torproject.orghs: Document arguments of rend_data_service_create() and rend_data_client_create()Title says it all. We need much more details on those important functions. Let's make it happen for 030.Title says it all. We need much more details on those important functions. Let's make it happen for 030.Tor: 0.3.0.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/20552Advertise support for ed25519 link handshake using subprotocol versions2020-06-13T15:02:50ZNick MathewsonAdvertise support for ed25519 link handshake using subprotocol versionsNow that #15055 is merged, #15056 will want to know which relays support its link protocol extensions. But to do that, we'll need to expose the fact in descriptors. The canonical way to do that is now with subprotocol versions (see pro...Now that #15055 is merged, #15056 will want to know which relays support its link protocol extensions. But to do that, we'll need to expose the fact in descriptors. The canonical way to do that is now with subprotocol versions (see prop#264).Tor: 0.3.0.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/20472circuit_pick_extend_handshake: Non-fatal assertion !(node_prev == NULL) failed2020-06-13T15:02:23Zcypherpunkscircuit_pick_extend_handshake: Non-fatal assertion !(node_prev == NULL) failed```
Oct 26 16:32:51.000 [warn] tor_bug_occurred_: Bug: src/or/circuitbuild.c:859: circuit_pick_extend_handshake: Non-fatal assertion !(node_prev == NULL) failed. (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug:...```
Oct 26 16:32:51.000 [warn] tor_bug_occurred_: Bug: src/or/circuitbuild.c:859: circuit_pick_extend_handshake: Non-fatal assertion !(node_prev == NULL) failed. (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: Non-fatal assertion !(node_prev == NULL) failed in circuit_pick_extend_handshake at src/or/circuitbuild.c:859. Stack trace: (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 0 tor 0x000000010b4d8f00 log_backtrace + 64 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 1 tor 0x000000010b586906 tor_bug_occurred_ + 790 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 2 tor 0x000000010ad024f3 circuit_pick_extend_handshake + 435 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 3 tor 0x000000010acfbf6a circuit_send_next_onion_skin + 12362 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 4 tor 0x000000010ad0b99f circuit_extend_to_new_exit + 335 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 5 tor 0x000000010b2dcd0a rend_client_reextend_intro_circuit + 1450 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 6 tor 0x000000010b2df3dc rend_client_introduction_acked + 5276 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 7 tor 0x000000010b2f8848 rend_process_relay_cell + 1464 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 8 tor 0x000000010b2a3fe2 connection_edge_process_relay_cell + 37938 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 9 tor 0x000000010b2960ce circuit_receive_relay_cell + 2798 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 10 tor 0x000000010add98a0 command_process_relay_cell + 5488 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 11 tor 0x000000010add38f9 command_process_cell + 409 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 12 tor 0x000000010ac7e89f channel_queue_cell + 2447 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 13 tor 0x000000010ac9f3a3 channel_tls_handle_cell + 4099 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 14 tor 0x000000010af2af62 connection_or_process_cells_from_inbuf + 3170 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 15 tor 0x000000010af2881e connection_or_process_inbuf + 1454 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 16 tor 0x000000010aed2e9b connection_process_inbuf + 427 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 17 tor 0x000000010aeafc19 connection_handle_read_impl + 7033 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 18 tor 0x000000010aeae068 connection_handle_read + 40 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 19 tor 0x000000010b15eb2a conn_read_callback + 490 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 20 tor 0x000000010b6c71a6 event_base_loop + 1858 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 21 tor 0x000000010b181819 run_main_loop_once + 1433 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 22 tor 0x000000010b16bb62 run_main_loop_until_done + 34 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 23 tor 0x000000010b168f58 do_main_loop + 4504 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 24 tor 0x000000010b16f0ac tor_main + 1132 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 25 tor 0x000000010ac269d0 main + 48 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 26 libdyld.dylib 0x00007fff9d8c65ad start + 1 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
Oct 26 16:32:51.000 [warn] Bug: 27 ??? 0x000000000000000f 0x0 + 15 (on Tor 0.2.9.3-alpha-dev 153ff4f559d9b7ee)
```Tor: 0.2.9.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/20355prop220: canonicity should consider all key types2020-06-13T15:02:03ZNick Mathewsonprop220: canonicity should consider all key typesTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/20354prop220: tristate/consensus parameter to decide if we add Ed IDs to extend ce...2020-06-13T15:02:02ZNick Mathewsonprop220: tristate/consensus parameter to decide if we add Ed IDs to extend cells.Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19889New guard plan - Glue things together!2020-06-13T15:00:10ZAndrea ShepardNew guard plan - Glue things together!New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
13) Glue things together!
- Add clean and meaningful logging so that we can *heavily* field test the feature in our machinesNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
13) Glue things together!
- Add clean and meaningful logging so that we can *heavily* field test the feature in our machinesTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19888New guard plan - separate state instances when EntryNodes/ExcludeNodes/etc ar...2020-06-13T15:03:44ZAndrea ShepardNew guard plan - separate state instances when EntryNodes/ExcludeNodes/etc are usedNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
12) Separate state instances when EntryNodes/ExcludeNodes/etc are used
- See prop271 MEANINGFUL_RESTRICTION_FRAC etc.New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
12) Separate state instances when EntryNodes/ExcludeNodes/etc are used
- See prop271 MEANINGFUL_RESTRICTION_FRAC etc.Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19887New guard plan - bridge support2020-06-13T15:00:09ZAndrea ShepardNew guard plan - bridge supportNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
11) Bridge support
- Thoughtworks function: fill_in_from_bidges()New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
11) Bridge support
- Thoughtworks function: fill_in_from_bidges()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19886New guard plan - update state whenever we get a new consensus2020-06-13T15:00:08ZAndrea ShepardNew guard plan - update state whenever we get a new consensusNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
10) Update state whenever we get a new consensus (section ON_CONSENSUS)
- Update SAMPLED_GUARDS elements (section SAMPLED)
- Remove obso...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
10) Update state whenever we get a new consensus (section ON_CONSENSUS)
- Update SAMPLED_GUARDS elements (section SAMPLED)
- Remove obsolete/expired guards
- See entry_guards_compute_status() / remove_obsolete_entry_guards()
- Thoughtworks function: entry_guards_update_profiles()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19885New guard plan - update list of waiting circuits2020-06-13T15:00:07ZAndrea ShepardNew guard plan - update list of waiting circuitsNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
9) Update list of waiting circuits (section UPDATE_WAITING)
- Implementation of guard "higher priority" ordering (see CONFIRMED)
- UnittestNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
9) Update list of waiting circuits (section UPDATE_WAITING)
- Implementation of guard "higher priority" ordering (see CONFIRMED)
- UnittestTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19884Retry schedule for guards per new guard plan2020-06-13T15:00:07ZAndrea ShepardRetry schedule for guards per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
8) Retry schedule for guards (section RETRYING)
- See entry_is_time_to_retry()
- UnittestNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
8) Retry schedule for guards (section RETRYING)
- See entry_is_time_to_retry()
- UnittestTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19883Maintain CONFIRMED_GUARDS per new guard plan2020-06-13T15:00:06ZAndrea ShepardMaintain CONFIRMED_GUARDS per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
7) Maintain CONFIRMED_GUARDS
- Add guard to CONFIRMED_GUARDS when circuit succeeds
- Fill in state info for each confirmed guard (confir...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
7) Maintain CONFIRMED_GUARDS
- Add guard to CONFIRMED_GUARDS when circuit succeeds
- Fill in state info for each confirmed guard (confirmed_on_date, etc.)
- Migration from old state format to new
- Thoughtworks unittest: test_used_guards_parse_state()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19882New guard plan - update guard state when a circuit fails/succeeds2020-06-13T15:00:06ZAndrea ShepardNew guard plan - update guard state when a circuit fails/succeedsNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
6) Update guard state when a circuit fails/succeeds
- Section ON_FAIL and ON_SUCCESS
- See entry_guard_register_connect_status()
- Unit...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
6) Update guard state when a circuit fails/succeeds
- Section ON_FAIL and ON_SUCCESS
- See entry_guard_register_connect_status()
- UnittestTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19881New guard plan - guard selection for circuits2020-06-13T15:00:05ZAndrea ShepardNew guard plan - guard selection for circuitsNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
5) Selecting guards for circuits
- Meant to replace choose_random_entry_impl()
- See section SELECTING in prop271
- Add new circuit sta...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
5) Selecting guards for circuits
- Meant to replace choose_random_entry_impl()
- See section SELECTING in prop271
- Add new circuit states to or_circuit_t
- Implement the guard selection logic
- Unittests on circuit state machine
- Unittests on guard selection logicTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19880Maintain set of PRIMARY_GUARDS per new guard plan2020-06-13T15:00:05ZAndrea ShepardMaintain set of PRIMARY_GUARDS per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
4) Maintain set of PRIMARY_GUARDS
- Functions to extract set of (live) primary guards out of FILTERED_GUARDS
- Unittest
- Thoughtworks ...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
4) Maintain set of PRIMARY_GUARDS
- Functions to extract set of (live) primary guards out of FILTERED_GUARDS
- Unittest
- Thoughtworks function: retry_primary_guards() / next_primary_guard()
- Thoughtworks unittests: test_next_primary_guard()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19879Derive FILTERED_GUARDS / USABLE_FILTERED_GUARDS from SAMPLED_GUARDS per new g...2020-06-13T15:00:04ZAndrea ShepardDerive FILTERED_GUARDS / USABLE_FILTERED_GUARDS from SAMPLED_GUARDS per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
3) Derive FILTERED_GUARDS / USABLE_FILTERED_GUARDS from SAMPLED_GUARDS
- The filtering function can be called at any point (e.g. ON_CONSE...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
3) Derive FILTERED_GUARDS / USABLE_FILTERED_GUARDS from SAMPLED_GUARDS
- The filtering function can be called at any point (e.g. ON_CONSENSUS)
- Write unittests ensuring correctness of filtering
- See populate_live_entry_guards()
- Thoughtworks function: filter_set() / filter_sampled()Tor: 0.3.0.x-finalNick MathewsonNick Mathewson