1. 25 Sep, 2018 3 commits
  2. 21 Sep, 2018 2 commits
    • Nick Mathewson's avatar
      Split directory.c code into several modules · 194acfb5
      Nick Mathewson authored
      Parts of this C file naturally belong in dircache, dirclient, and
      dircommon: so, move them there.
      194acfb5
    • Nick Mathewson's avatar
      Split main.c into main.c and mainloop.c · c7ce6b98
      Nick Mathewson authored
      The main.c code is responsible for initialization and shutdown;
      the mainloop.c code is responsible for running the main loop of Tor.
      
      Splitting the "generic event loop" part of mainloop.c from the
      event-loop-specific part is not done as part of this patch.
      c7ce6b98
  3. 20 Sep, 2018 1 commit
    • Nick Mathewson's avatar
      Split most of dirserv.c into several new modules · b54a5e70
      Nick Mathewson authored
      In dirauth:
        * bwauth.c reads and uses bandwidth files
        * guardfraction.c reads and uses the guardfraction file
        * reachability.c tests relay reachability
        * recommend_pkg.c handles the recommended-packages lines.
        * recv_descs.c handles fingerprint files and processing incoming
          routerinfos that relays upload to us
        * voteflag.c computes flag thresholds and sets those thresholds on
          routerstatuses when computing votes
      
      In control:
        * fmt_serverstatus.c generates the ancient "v1 server status"
          format that controllers expect.
      
      In nodelist:
        * routerstatus_fmt.c formats routerstatus entries for a consensus,
          a vote, or for the controller.
      b54a5e70
  4. 19 Sep, 2018 1 commit
  5. 04 Sep, 2018 1 commit
    • Nick Mathewson's avatar
      Rename crypto_pk_check_key(), use it more reasonably, add tests · 600e046e
      Nick Mathewson authored
      This function was a wrapper around RSA_check_key() in openssl, which
      checks for invalid RSA private keys (like those where p or q are
      composite, or where d is not the inverse of e, or where n != p*q).
      We don't need a function like this in NSS, since unlike OpenSSL, NSS
      won't let you import a bogus private key.
      
      I've renamed the function and changed its return type to make it
      more reasonable, and added a unit test for trying to read a key
      where n != p*q.
      600e046e
  6. 29 Aug, 2018 1 commit
    • David Goulet's avatar
      router: Keep RSA onion public key in ASN.1 format · 2f6bc749
      David Goulet authored and Nick Mathewson's avatar Nick Mathewson committed
      
      
      The OpenSSL "RSA" object is currently 408 bytes compares to the ASN.1 encoding
      which is 140 for a 1024 RSA key.
      
      We save 268 bytes per descriptor (routerinfo_t) *and* microdescriptor
      (microdesc_t). Scaling this to 6000 relays, and considering client usually
      only have microdescriptors, we save 1.608 MB of RAM which is considerable for
      mobile client.
      
      This commit makes it that we keep the RSA onion public key (used for TAP
      handshake) in ASN.1 format instead of an OpenSSL RSA object.
      
      Changes is done in both routerinfo_t and microdesc_t.
      
      Closes #27246
      
      Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
      2f6bc749
  7. 08 Aug, 2018 2 commits
  8. 26 Jul, 2018 1 commit
  9. 11 Jul, 2018 1 commit
  10. 05 Jul, 2018 3 commits
    • Nick Mathewson's avatar
      667a6e8f
    • Nick Mathewson's avatar
      Fix every include path changed in the previous commit (automated) · ef486e3c
      Nick Mathewson authored
      I am very glad to have written this script.
      ef486e3c
    • Nick Mathewson's avatar
      Move literally everything out of src/or · 63b4ea22
      Nick Mathewson authored
      This commit won't build yet -- it just puts everything in a slightly
      more logical place.
      
      The reasoning here is that "src/core" will hold the stuff that every (or
      nearly every) tor instance will need in order to do onion routing.
      Other features (including some necessary ones) will live in
      "src/feature".  The "src/app" directory will hold the stuff needed
      to have Tor be an application you can actually run.
      
      This commit DOES NOT refactor the former contents of src/or into a
      logical set of acyclic libraries, or change any code at all.  That
      will have to come in the future.
      
      We will continue to move things around and split them in the future,
      but I hope this lays a reasonable groundwork for doing so.
      63b4ea22
  11. 03 Jul, 2018 1 commit
  12. 01 Jul, 2018 3 commits
  13. 29 Jun, 2018 1 commit
  14. 21 Jun, 2018 1 commit
  15. 20 Jun, 2018 2 commits
  16. 15 Jun, 2018 8 commits
  17. 14 Jun, 2018 2 commits
  18. 13 Jun, 2018 1 commit
  19. 11 Jun, 2018 1 commit
    • Nick Mathewson's avatar
      Several attempts to diagnose ticket 25686 · faf45800
      Nick Mathewson authored
      There are a few reasons that relays might be uploading desciptors
      without saying X-Desc-Gen-Reason:
        1. They are running an old version of our software, before 0.3.2.stable.
        2. They are not running our software, but they are claiming they
           are.
        3. They are uploading through a proxy that strips X-Desc-Gen-Reason.
        4. They somehow had a bug in their software.
      
      According to the 25686 data, 1 is the most common reason.  This
      ticket is an attempt to diagnose case 4, or prove that case 4
      doesn't actually happen.
      faf45800
  20. 03 Jun, 2018 1 commit
  21. 14 May, 2018 1 commit
  22. 10 May, 2018 2 commits