Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug28634 latest 28780 #1008

wants to merge 15 commits into from


None yet
2 participants
Copy link

commented May 9, 2019

No description provided.

asn-d6 added some commits Mar 20, 2019

Add some more useful logs for future debugging.
They were quite useful to me while debugging these machines.
Correctly handle machines out of tokens that have not closed yet.
Because perhaps the machine on the other side is still not done and keeping
them open.
Tune machines to obfuscate the circuit setup cell sequence.
I suggest you re-read the machines.c file instead of reading the diff here.

We abort the "look-like-nothing" strategy of the old machines, for these new
machines tha are carefully hand-tuned to obfuscate the circuit construction
sequence of intro/rend circuits.

We take this approach because it's easier to reason about the properties that
the machines offer, because they have minimal overhead, and also because they
are extensible by adding more states to them to do more advanced tricks
Use TOKEN_REMOVAL_NONE to avoid the use of monotime functions.
Control the volume of padding using state length.
Some machine tuning and extra documentation based on Mike's testing.
- Removed some useless intro-machine transitions, and documented the useful
  ones better.

- Tuned the intro machine to have zero tokens on the origin-side.

- Moved the 'should_negotiate_end' to the relay-side machine. This is needed,
  because there must be a way for the origin-side machine to be moved to the
  END state only _after_ receiving an INTRODUCE_ACK cell (otherwise, the
  circuit will be closed by the HS code). So we just have the relay-side
  machine close the circuit. This works out fine and does not cause a
  fingerprint because it's just a PADDING_NEGOTIATED incoming cell in the end,
  along with all the other incoming DROP cells.

- Decreased the latency of the rendezvous machine, so that the timing always
  works well.

- Fix some tests that got broken because now the origin-side intro machine,
  just moves to OBF state and stays there until the relay-side machine closes
  it down.

This comment has been minimized.

Copy link

commented May 9, 2019

Pull Request Test Coverage Report for Build 4976

  • 167 of 182 (91.76%) changed or added relevant lines in 5 files are covered.
  • 1 unchanged line in 1 file lost coverage.
  • Overall coverage increased (+0.09%) to 62.473%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/core/or/circuituse.c 0 1 0.0%
src/core/or/circuitlist.c 1 6 16.67%
src/core/or/circuitpadding.c 56 65 86.15%
Files with Coverage Reduction New Missed Lines %
src/core/or/circuitlist.c 1 58.12%
Totals Coverage Status
Change from base Build 4972: 0.09%
Covered Lines: 46617
Relevant Lines: 74619

💛 - Coveralls

@asn-d6 asn-d6 closed this May 16, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.