Nick Mathewson
490e187056
Add a benchmark for our several PRNGs.
2019-02-14 09:26:40 -05:00
Nick Mathewson
f3cbd6426c
Implement a fast aes-ctr prng
...
This module is currently implemented to use the same technique as
libottery (later used by the bsds' arc4random replacement), using
AES-CTR-256 as its underlying stream cipher. It's backtracking-
resistant immediately after each call, and prediction-resistant
after a while.
Here's how it works:
We generate psuedorandom bytes using AES-CTR-256. We generate BUFLEN bytes
at a time. When we do this, we keep the first SEED_LEN bytes as the key
and the IV for our next invocation of AES_CTR, and yield the remaining
BUFLEN - SEED_LEN bytes to the user as they invoke the PRNG. As we yield
bytes to the user, we clear them from the buffer.
Every RESEED_AFTER times we refill the buffer, we mix in an additional
SEED_LEN bytes from our strong PRNG into the seed.
If the user ever asks for a huge number of bytes at once, we pull SEED_LEN
bytes from the PRNG and use them with our stream cipher to fill the user's
request.
2019-02-14 09:26:40 -05:00
Nick Mathewson
3d3578ab41
Extract RNG tests into a new test module
...
test_crypto.c is pretty big; it wouldn't hurt to split it up some
more before I start adding stuff to the PRNG tests.
2019-02-14 09:26:40 -05:00
Nick Mathewson
622a9a8a36
Extract the common body of our random-int functions into a macro
...
This is the second part of refactoring the random-int-in-range code.
2019-02-14 09:26:40 -05:00
George Kadianakis
f5a6d4c6ea
Disable unstable circuit padding unittest.
...
until #29298 is implemented.
2019-02-14 12:09:41 +02:00
Nick Mathewson
5f42bc0f48
Merge remote-tracking branch 'tor-github/pr/699'
2019-02-13 15:19:59 -05:00
Nick Mathewson
5687165cf1
Merge remote-tracking branch 'tor-github/pr/674'
2019-02-13 11:38:35 -05:00
David Goulet
d043096d59
Merge branch 'maint-0.3.5'
2019-02-13 11:02:09 -05:00
David Goulet
d5de1a0a55
Merge branch 'tor-github/pr/651'
2019-02-13 11:02:02 -05:00
David Goulet
6efc2a0e1f
Merge branch 'tor-github/pr/650' into maint-0.3.5
2019-02-13 10:56:24 -05:00
juga0
b61c3c6dfa
changes: Add changes file for #26698
2019-02-13 12:26:00 +00:00
juga0
ec7da50ab4
dirvote: Add the bandwidth file digest in the vote
2019-02-13 12:26:00 +00:00
juga0
28490fa23e
test: Add test to get the digest of a bw file
2019-02-13 12:26:00 +00:00
juga0
fc3e90a7b6
bwauth: Add function to get the digest of a bw file
2019-02-13 12:26:00 +00:00
David Goulet
c320c52e89
Merge branch 'tor-github/pr/690'
2019-02-12 13:04:25 -05:00
David Goulet
95e5f8fe03
Merge branch 'tor-github/pr/671'
2019-02-12 13:02:30 -05:00
Nick Mathewson
72b978c3a5
On windows, if we fail to load a consensus and it has a CRLF, retry.
...
Fixes bug 28614; bugfix on 0.4.0.1-alpha when we started mmapping
the consensus.
2019-02-12 12:57:33 -05:00
Nick Mathewson
a797a69679
Merge branch 'maint-0.3.5'
2019-02-12 09:56:50 -05:00
Nick Mathewson
db209d4dba
Merge branch 'maint-0.3.3' into maint-0.3.4
2019-02-12 09:56:49 -05:00
Nick Mathewson
7ead2af622
Merge branch 'maint-0.2.9' into maint-0.3.3
2019-02-12 09:56:49 -05:00
Nick Mathewson
2e770216c4
Merge branch 'maint-0.3.4' into maint-0.3.5
2019-02-12 09:56:49 -05:00
Nick Mathewson
ed05b7dddc
Merge branch 'maint-0.3.5'
2019-02-12 09:55:09 -05:00
David Goulet
46b6df7122
test: Fix a warning underflow in rend_cache/clean
...
Because the test is adding entries to the "rend_cache" directly, the
rend_cache_increment_allocation() was never called which made the
rend_cache_clean() call trigger that underflow warning:
rend_cache/clean: [forking] Nov 29 09:55:04.024 [warn] rend_cache_decrement_allocation(): Bug: Underflow in rend_cache_decrement_allocation (on Tor 0.4.0.0-alpha-dev 2240fe63feb9a8cf)
The test is still good and valid.
Fixes #28660
Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-02-12 09:15:41 -05:00
Karsten Loesing
a3f9ddcf03
Update geoip and geoip6 to the February 5 2019 database.
2019-02-12 14:40:42 +01:00
rl1987
8d04dc416b
Add changes file
2019-02-09 16:56:54 +02:00
rl1987
4c10221332
Use compress_dir_buf_add() function in a few places
2019-02-09 16:46:31 +02:00
rl1987
09a3c949f8
Add connection_dir_buf_add() helper function
2019-02-09 16:06:32 +02:00
Nick Mathewson
a036c0187a
cov-diff: better handle the case where a file stops having coverage
2019-02-08 11:22:55 -05:00
Nick Mathewson
f4c76661d1
Add a script to check for coverage nondeterminism
...
Closes ticket 29436.
2019-02-08 11:22:24 -05:00
Nick Mathewson
f2b646a2b6
Merge branch 'ticket29435_035' into ticket29435_040
2019-02-08 10:47:04 -05:00
Nick Mathewson
192b312c97
Fix coverage script.
...
It was looking for object files made with the old automake
directorations, but those changed when we split up our libraries.
Fixes bug 29435; bugfix on 0.3.5.1-alpha.
2019-02-08 10:43:38 -05:00
rl1987
b53fee4622
Fix SC2086 warning in test_workqueue_*.sh shell scripts
2019-02-08 16:51:49 +02:00
Nick Mathewson
b63404ebba
Changes file for ticket29026.
2019-02-08 08:52:46 -05:00
Nick Mathewson
49ec29044d
Add more openssl includes to fix no-deprecated compilation
...
Closes ticket 29026; patch from Mangix.
2019-02-08 08:51:23 -05:00
Nick Mathewson
b9abdcd6bc
Fix compilation when openssl is compiled without engine support.
...
Patch from Mangix. Closes part of ticket 29026.
2019-02-08 08:50:43 -05:00
Nick Mathewson
7f59b9fb1f
Merge branch 'maint-0.3.5'
2019-02-08 08:37:46 -05:00
Nick Mathewson
ab65347819
Merge branch 'ticket29040_1_changes' into maint-0.3.5
2019-02-08 08:37:43 -05:00
Nick Mathewson
eca0f87801
Add changes file for bug 29040.
2019-02-08 08:37:23 -05:00
Nick Mathewson
b1ae2fd65b
Merge branch 'maint-0.3.5'
2019-02-08 08:19:34 -05:00
Nick Mathewson
4b36f9676d
Merge remote-tracking branch 'tor-github/pr/670' into maint-0.3.5
2019-02-08 08:19:31 -05:00
rl1987
8df6a65e6b
Fix shellcheck warning in zero_length_keys.sh
2019-02-07 17:23:23 +02:00
Nick Mathewson
a49149fc13
Extract numeric CSPRNG functions into a new module.
...
Some of the code for getting a random value within a range wants to
be shared between crypto_rand() and the new crypto_fast_rng() code.
2019-02-06 22:06:05 -05:00
Nick Mathewson
21d184a184
Remove extraneous #if/#endif wrapper in crypto_rand.c
...
I don't know how this got here, but this kind of a wrapper only
belongs in a header file.
2019-02-06 22:05:39 -05:00
Nick Mathewson
8ca808f81d
Code for anonymous mappings via mmap() or CreateFileMapping().
...
Using an anonymous mmap() is a good way to get pages that we can set
kernel-level flags on, like minherit() or madvise() or mlock().
We're going to use that so that we can make uninheritable locked
pages to store PRNG data.
2019-02-06 22:03:30 -05:00
rl1987
daff9e1ba1
Fix shellcheck warning in fuzz_static_testcases.sh
2019-02-06 11:01:22 +02:00
rl1987
4e3880607a
Add changes file
2019-02-06 10:53:12 +02:00
rl1987
7e415ec05a
Fix SC2181
2019-02-06 10:51:54 +02:00
rl1987
2649239c62
Use mktemp to fix SC2186; also, fix SC2006.
2019-02-06 10:27:16 +02:00
rl1987
1fc8bbff9c
Fix two instances of SC2004 in nagios-check-tor-authority
2019-02-06 10:20:11 +02:00
Roger Dingledine
bfd1d70243
Merge branch 'maint-0.3.5'
2019-02-05 08:10:43 -05:00