summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Try to convince coverity not to worry about this loop eitherHEADmasterNick Mathewson2015-07-12
|
* Try to convince coverity not to worryh about this loopNick Mathewson2015-07-12
|
* Tell coverity to tolerate ed25519_verifyNick Mathewson2015-07-12
|
* Merge remote-tracking branch 'origin/maint-0.2.6'Nick Mathewson2015-07-12
|\ | | | | | | This is an 'ours' merge, to avoid taking the bump to 0.2.6.10-dev
| * Bump maint-0.2.6 to 0.2.6.10-devNick Mathewson2015-07-12
| |
* | Forward-port the changelog and releasenotesNick Mathewson2015-07-12
| |
* | Okay, this time it was my faultNick Mathewson2015-07-12
| |
* | Fine, mingw! fine! are you happy now??Nick Mathewson2015-07-12
| |
* | This should be the last SecureZeroMemory fixNick Mathewson2015-07-12
| |
* | Dammit, autoconf!Nick Mathewson2015-07-12
| |
* | Disable -Wstack-protector diagnostics in curve25519-donna-helpers.hNick Mathewson2015-07-12
| | | | | | | | This was causing a false positive on our arm builders.
* | Nth time is maybe the charm for fixing windows readpassword build errorsNick Mathewson2015-07-12
| |
* | Merge remote-tracking branch 'origin/maint-0.2.6'Nick Mathewson2015-07-12
|\ \ | |/ | | | | This is an "ours" merge to avoid bumping the version number in master.
| * Bump maint-0.2.6 to 0.2.6.10Nick Mathewson2015-07-12
| |
* | note some dead code in set_max_file_descriptorsNick Mathewson2015-07-11
| |
* | Fix a leak in test_microdesc (CID 1311631)Nick Mathewson2015-07-11
| |
* | Try one more one more time to get tor-ci-windows workingNick Mathewson2015-07-10
| | | | | | | | Apparently its mingw headers are missing some stuff.
* | Attempt yet again to make the tor-ci-windows builder happyNick Mathewson2015-07-10
| |
* | Fix missing-macro errorsNick Mathewson2015-07-09
| |
* | Merge branch 'libscrypt_eq_openssl_squashed'Nick Mathewson2015-07-09
|\ \
| * | Adding changes file for 16189.rl19872015-07-09
| | |
| * | Assert interoperability betweeen libscrypt and OpenSSL EBP_PBE_scrypt().rl19872015-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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().
| * | Check if OpenSSL includes scrypt.rl19872015-07-06
| | |
* | | More windows header stuff. Will it work this time?Nick Mathewson2015-07-09
| | |
* | | Fix dumb windows compilation bug in d9052c62Nick Mathewson2015-07-09
| | |
* | | Repair make dist-checkNick Mathewson2015-07-09
| | |
* | | Merge remote-tracking branch 'yawning/feature16467_9663'Nick Mathewson2015-07-09
|\ \ \
| * | | Integrate and enable ed25519-donna.Yawning Angel2015-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Integrate the accelerated Curve25519 scalar basemult.Yawning Angel2015-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Add Curve25519->Ed25519 support to ed25519-donna (Not yet used).Yawning Angel2015-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Add blinding support to ed25519-donna (Not yet used).Yawning Angel2015-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Integrate ed25519-donna (Not yet used).Yawning Angel2015-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Import Andrew Moon's ed25519-donna.Yawning Angel2015-07-06
| |/ / | | | | | | | | | | | | | | | | | | | | | This is a clean copy of ed25519-donna as of commit: 8757bd4cd209cb032853ece0ce413f122eef212c https://github.com/floodyberry/ed25519-donna
* | | Merge branch 'bug4862_027_04_squashed'Nick Mathewson2015-07-09
|\ \ \
| * | | Fix comments in rendservice.cDavid Goulet2015-07-09
| | | | | | | | | | | | | | | | Signed-off-by: David Goulet <dgoulet@ev0ke.net>
| * | | Count intro circuit and not only established onesDavid Goulet2015-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: David Goulet <dgoulet@ev0ke.net>
| * | | Upload descriptor when all intro points are readyDavid Goulet2015-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: David Goulet <dgoulet@ev0ke.net>
| * | | Reuse intro points that failed but are still validDavid Goulet2015-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: David Goulet <dgoulet@ev0ke.net>
| * | | Refactor rend_services_introduce()David Goulet2015-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: David Goulet <dgoulet@ev0ke.net>
| * | | Add the torrc option HiddenServiceNumIntroductionPointsDavid Goulet2015-06-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a way to specify the amount of introduction points an hidden service can have. Maximum value is 10 and the default is 3. Fixes #4862 Signed-off-by: David Goulet <dgoulet@ev0ke.net>
| * | | Remove intro points adaptative algorithmDavid Goulet2015-06-29
| | | | | | | | | | | | | | | | | | | | | | | | Partially fixes #4862 Signed-off-by: David Goulet <dgoulet@ev0ke.net>
* | | | Always use the sandbox in tor_open_cloexecteor2015-07-08
| |/ / |/| | | | | | | | | | | Use the sandbox in tor_open_cloexec, whether or not O_CLOEXEC is defined. Patch by "teor". Fix on 0.2.3.1-alpha.
* | | Make test_workqueue.c faster, and on-by-default.Nick Mathewson2015-07-03
| | | | | | | | | | | | | | | Instead of having a 30-second timer be the only way to end the test, add a 2 second shutdown timer when the test is actually about to be over.
* | | Use the configured Python executable to run test-stem-full.cypherpunks2015-07-02
| | |
* | | Try a little harder to fix the tor-ci-windows builder, or figure out why it ↵Nick Mathewson2015-06-29
| | | | | | | | | | | | is broke
* | | More tweaks for windows compilation. (ick)Nick Mathewson2015-06-29
| | |
* | | Remove checks for visual C 6.Nick Mathewson2015-06-29
| | |
* | | Move windows header macros into orconfig.hNick Mathewson2015-06-29
|/ / | | | | | | | | This should prevent duplicated code, and lower the likelihood of accidentally making them inconsistent.
* | fix a windows unused var warningNick Mathewson2015-06-28
| |
* | Whoops; fix linux build againNick Mathewson2015-06-27
| |