Skip to content
Snippets Groups Projects
  1. Jul 12, 2015
  2. Jul 11, 2015
  3. Jul 10, 2015
  4. Jul 09, 2015
    • Nick Mathewson's avatar
      Fix missing-macro errors · fdf5014d
      Nick Mathewson authored
      fdf5014d
    • Nick Mathewson's avatar
      0ca98c1e
    • rl1987's avatar
      Adding changes file for 16189. · a13d0fd3
      rl1987 authored and Nick Mathewson's avatar Nick Mathewson committed
      a13d0fd3
    • rl1987's avatar
      Assert interoperability betweeen libscrypt and OpenSSL EBP_PBE_scrypt(). · 5c86708e
      rl1987 authored and Nick Mathewson's avatar Nick Mathewson committed
      Add a new and slow unit test that checks if libscrypt_scrypt() and
      EBP_PBE_scrypt() yield the same keys from test vectors.
      
      squash! Assert interoperability betweeen libscrypt and OpenSSL EBP_PBE_scrypt().
      
      squash! Assert interoperability betweeen libscrypt and OpenSSL EBP_PBE_scrypt().
      
      squash! Assert interoperability betweeen libscrypt and OpenSSL EBP_PBE_scrypt().
      5c86708e
    • Nick Mathewson's avatar
      4438b2a0
    • Nick Mathewson's avatar
      f19a75e1
    • Nick Mathewson's avatar
      Repair make dist-check · 3301b7a1
      Nick Mathewson authored
      3301b7a1
    • Nick Mathewson's avatar
    • Nick Mathewson's avatar
      Merge branch 'bug4862_027_04_squashed' · 327efe91
      Nick Mathewson authored
      327efe91
    • David Goulet's avatar
      Fix comments in rendservice.c · 5fa280f7
      David Goulet authored and Nick Mathewson's avatar Nick Mathewson committed
      
      Signed-off-by: default avatarDavid Goulet <dgoulet@ev0ke.net>
      5fa280f7
    • David Goulet's avatar
      Count intro circuit and not only established ones · 7657194d
      David Goulet authored and Nick Mathewson's avatar Nick Mathewson committed
      
      When cleaning up extra circuits that we've opened for performance reason, we
      need to count all the introduction circuit and not only the established ones
      else we can end up with too many introduction points.
      
      This also adds the check for expiring nodes when serving an INTRODUCE cell
      since it's possible old clients are still using them before we have time to
      close them.
      
      Signed-off-by: default avatarDavid Goulet <dgoulet@ev0ke.net>
      7657194d
    • David Goulet's avatar
      Upload descriptor when all intro points are ready · d67bf8b2
      David Goulet authored and Nick Mathewson's avatar Nick Mathewson committed
      
      To upload a HS descriptor, this commits makes it that we wait for all
      introduction point to be fully established.
      
      Else, the HS ends up uploading a descriptor that may contain intro points
      that are not yet "valid" meaning not yet established or proven to work. It
      could also trigger three uploads for the *same* descriptor if every intro
      points takes more than 30 seconds to establish because of desc_is_dirty
      being set at each intro established.
      
      To achieve that, n_intro_points_established varialbe is added to the
      rend_service_t object that is incremented when we established introduction
      point and decremented when we remove a valid intro point from our list.
      
      The condition to upload a descriptor also changes to test if all intro
      points are ready by making sure we have equal or more wanted intro points
      that are ready.
      
      The desc_id_dirty flag is kept to be able to still use the
      RendInitialPostPeriod option.
      
      This partially fixes #13483.
      
      Signed-off-by: default avatarDavid Goulet <dgoulet@ev0ke.net>
      d67bf8b2
    • David Goulet's avatar
      Reuse intro points that failed but are still valid · 1125a487
      David Goulet authored and Nick Mathewson's avatar Nick Mathewson committed
      
      There is a case where if the introduction circuit fails but the node is
      still in the consensus, we clean up the intro point and choose an other one.
      This commit fixes that by trying to reuse the existing intro point with a
      maximum value of retry.
      
      A retry_nodes list is added to rend_services_introduce() and when we remove
      an invalid intro points that fits the use case mentionned before, we add the
      node to the retry list instead of removing it. Then, we retry on them before
      creating new ones.
      
      This means that the requirement to remove an intro point changes from "if no
      intro circuit" to "if no intro circuit then if no node OR we've reached our
      maximum circuit creation count".
      
      For now, the maximum retries is set to 3 which it completely arbitrary. It
      should also at some point be tied to the work done on detecting if our
      network is down or not.
      
      Fixes #8239
      
      Signed-off-by: default avatarDavid Goulet <dgoulet@ev0ke.net>
      1125a487
    • David Goulet's avatar
      Refactor rend_services_introduce() · 7c7bb8b9
      David Goulet authored and Nick Mathewson's avatar Nick Mathewson committed
      
      The reasoning for refactoring this function is that removing the
      introduction point adaptative algorithm (#4862) ended up changing quite a
      bit rend_services_introduce(). Also, to fix some open issues (#8239, #8864
      and #13483), this work had to be done.
      
      First, this removes time_expiring variable in an intro point object and
      INTRO_POINT_EXPIRATION_GRACE_PERIOD trickery and use an expiring_nodes list
      where intro nodes that should expire are moved to that list and cleaned up
      only once the new descriptor is successfully uploaded. The previous scheme
      was adding complexity and arbitrary timing to when we expire an intro point.
      We keep the intro points until we are sure that the new descriptor is
      uploaded and thus ready to be used by clients. For this,
      rend_service_desc_has_uploaded() is added to notify the HS subsystem that
      the descriptor has been successfully uploaded. The purpose of this function
      is to cleanup the expiring nodes and circuits if any.
      
      Secondly, this adds the remove_invalid_intro_points() function in order to
      split up rend_services_introduce() a bit with an extra modification to it
      that fixes #8864. We do NOT close the circuit nor delete the intro point if
      the circuit is still alive but the node was removed from the consensus. Due
      to possible information leak, we let the circuit and intro point object
      expire instead.
      
      Finally, the whole code flow is simplified and large amount of documentation
      has been added to mostly explain the why of things in there.
      
      Fixes #8864
      
      Signed-off-by: default avatarDavid Goulet <dgoulet@ev0ke.net>
      7c7bb8b9
  5. Jul 07, 2015
  6. Jul 06, 2015
    • rl1987's avatar
      Check if OpenSSL includes scrypt. · b74947d0
      rl1987 authored
      b74947d0
    • Yawning Angel's avatar
      Integrate and enable ed25519-donna. · 840e68d9
      Yawning Angel authored
      The runtime sanity checking is slightly different from the optimized
      basepoint stuff in that it uses a given implementation's self tests if
      available, and checks if signing/verification works with a test vector
      from the IETF EdDSA draft.
      
      The unit tests include a new testcase that will fuzz donna against ref0,
      including the blinding and curve25519 key conversion routines.  If this
      is something that should be done at runtime (No?), the code can be
      stolen from there.
      
      Note: Integrating batch verification is not done yet.
      840e68d9
    • Yawning Angel's avatar
      Integrate the accelerated Curve25519 scalar basemult. · f079c277
      Yawning Angel authored
      Integration work scavanged from nickm's `ticket8897_9663_v2` branch,
      with minor modifications.  Tor will still sanity check the output but
      now also attempts to catch extreme breakage by spot checking the
      optimized implementation vs known values from the NaCl documentation.
      
      Implements feature 9663.
      f079c277
    • Yawning Angel's avatar
      Add Curve25519->Ed25519 support to ed25519-donna (Not yet used). · be113f0b
      Yawning Angel authored
      This needs to be done to allow for the possibility of removing the
      ref10 code at a later date, though it is not performance critical.
      When integrated by kludging it into tor, it passes unit tests, and is
      twice as fast.
      be113f0b
    • Yawning Angel's avatar
      Add blinding support to ed25519-donna (Not yet used). · b7aa3074
      Yawning Angel authored
      Integrating it the "wrong" way into common/crypto_ed25519.c passes
      `make check`, and there appear to be some known answer tests for this,
      so I assume I got it right.
      
      Blinding a public key goes from 139.10 usec to 70.78 usec using
      ed25519-donna (NB: Turboboost/phase of moon), though the code isn't
      critical path, so supporting it is mostly done for completeness.
      b7aa3074
    • Yawning Angel's avatar
      Integrate ed25519-donna (Not yet used). · 0f3eeca9
      Yawning Angel authored
      Integrate ed25519-donna into the build process, and provide an
      interface that matches the `ref10` code.  Apart from the blinding and
      Curve25519 key conversion, this functions as a drop-in replacement for
      ref10 (verified by modifying crypto_ed25519.c).
      
      Tests pass, and the benchmarks claim it is quite a bit faster, however
      actually using the code requires additional integration work.
      0f3eeca9
    • Yawning Angel's avatar
      Import Andrew Moon's ed25519-donna. · 7b10741b
      Yawning Angel authored
      This is a clean copy of ed25519-donna as of commit:
      
        8757bd4cd209cb032853ece0ce413f122eef212c
      
      https://github.com/floodyberry/ed25519-donna
      7b10741b
  7. Jul 03, 2015
  8. Jul 02, 2015
  9. Jun 29, 2015
  10. Jun 28, 2015
  11. Jun 27, 2015
Loading