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
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
Roger Dingledine
bfd1d70243
Merge branch 'maint-0.3.5'
2019-02-05 08:10:43 -05:00
Roger Dingledine
bca25eebfb
Merge branch 'maint-0.3.4' into maint-0.3.5
2019-02-05 08:10:14 -05:00
Roger Dingledine
8ea98c0f4c
Merge branch 'maint-0.3.3' into maint-0.3.4
2019-02-05 08:09:47 -05:00
Nick Mathewson
4d7a0a1310
Update Cargo.lock with new comment; suppress 29244.
2019-02-01 16:38:23 +01:00
Nick Mathewson
d9010c5b67
One more 32-bit clang warning
2019-01-24 15:23:06 -05:00
Nick Mathewson
e19222a0da
Use tt_u64_op() in test_circuitpadding.c to fix compilation warnings
...
Fixes bug 29169.
2019-01-24 13:20:21 -05:00
Nick Mathewson
8b254c1c70
Merge branch 'precommit_squashed'
2019-01-24 11:08:10 -05:00
Nick Mathewson
dd22c84ccf
Only run the checkIncludes.py script if it exists
...
(It was added in 0.3.5)
2019-01-24 08:06:09 -05:00
Nick Mathewson
107e50a90f
lintChanges.py didn't take a directory argument in 0.2.9
2019-01-24 08:05:42 -05:00
rl1987
611e8dcda7
Also run checkInclude.py before every commit
2019-01-24 08:03:17 -05:00
rl1987
99fffc6c2f
Add a pre-commit hook that runs code and changelog entry formatting checks
2019-01-24 08:03:17 -05:00
Nick Mathewson
adeeb8841e
Merge branch 'maint-0.3.5'
2019-01-23 11:18:14 -05:00
rl1987
712a622fce
Log an HSDesc we failed to parse at Debug loglevel
2019-01-23 10:37:10 -05:00
Nick Mathewson
5ec566edda
Merge branch 'maint-0.3.5'
2019-01-23 09:51:32 -05:00
Nick Mathewson
1c5f03fba7
Merge branch 'maint-0.3.3' into maint-0.3.4
2019-01-23 09:51:02 -05:00
Nick Mathewson
f9050681c0
Merge branch 'maint-0.3.4' into maint-0.3.5
2019-01-23 09:51:02 -05:00
Nick Mathewson
d1c0dbabfa
Merge branch 'maint-0.2.9' into maint-0.3.3
...
"ours" merge to avoid dropping non-broken changes files after
removal of merged 0.2.9 changes files.
2019-01-23 09:50:38 -05:00
Nick Mathewson
dd6c2b0ad7
maint-0.2.9: remove changes files that are merged in 0.2.9 releases
...
Many of these files cause check-changes to fail, which will be a
long-term problem as we continue to support 0.2.9.
2019-01-23 09:48:28 -05:00
Nick Mathewson
8e1e71cc0d
Merge branch 'bug29122'
2019-01-22 14:31:01 -05:00
George Kadianakis
6243133a71
Fix intermittent failures of test_circuitpadding_wronghop().
...
We fix it by disabling the scheduling of actual padding.
Fixes #29122 .
2019-01-22 14:30:43 -05:00
Nick Mathewson
74e41155ff
Merge branch 'maint-0.3.5'
2019-01-22 12:27:50 -05:00
Nick Mathewson
d9fde87607
correct bug number in 29042 changelog
2019-01-22 12:27:46 -05:00
Nick Mathewson
21dd3ece62
Merge branch 'maint-0.3.5'
2019-01-22 11:55:56 -05:00
Nick Mathewson
4159d103d6
Merge branch 'bug29042_035' into maint-0.3.5
2019-01-22 11:55:53 -05:00
Nick Mathewson
00bc18b847
Merge remote-tracking branch 'tor-github/pr/653'
2019-01-22 08:13:14 -05:00
Nick Mathewson
0ce4d23af5
Merge branch 'maint-0.3.5'
2019-01-22 08:04:55 -05:00
Nick Mathewson
9ce1978b5e
Merge branch 'bug28979_035' into maint-0.3.5
2019-01-22 08:04:52 -05:00
Nick Mathewson
761f1bf71e
Merge branch 'maint-0.3.3' into maint-0.3.4
2019-01-18 12:25:08 -05:00
Nick Mathewson
4cca7fb99b
Merge branch 'maint-0.2.9' into maint-0.3.3
2019-01-18 12:25:08 -05:00
Nick Mathewson
d1af4d65df
Merge branch 'maint-0.3.5'
2019-01-18 12:25:08 -05:00
Nick Mathewson
a8580a6836
Merge branch 'maint-0.3.4' into maint-0.3.5
2019-01-18 12:25:08 -05:00
Nick Mathewson
9d7b4f1ca8
Fix the year for 0.3.4.10 and 0.3.3.11
2019-01-18 10:22:06 -05:00
Nick Mathewson
aaef95ada5
format_changelog: treat "issue NNNN" as a track ticket
2019-01-18 10:15:02 -05:00
Nick Mathewson
67f275f8da
Bump to 0.4.0.1-alpha-dev
2019-01-18 10:08:57 -05:00
Nick Mathewson
81f1b89efc
Better failure message on stochastic test failure
2019-01-17 17:27:13 -05:00
Nick Mathewson
c08fc2e19e
Speed up the deterministic prng in test_prob_distr, by a lot.
...
Using a single xof object and squeezing it repeatedly should make
everything MUCH faster here.
2019-01-17 16:10:02 -05:00
Nick Mathewson
77712a5fa2
Merge remote-tracking branch 'tor-github/pr/645'
2019-01-17 12:04:50 -05:00
Nick Mathewson
7e1f893460
lintChanges.py: Two python re usage fixes
2019-01-17 08:46:06 -05:00
Nick Mathewson
7c6a8c674b
Fix documentation for ClientAuth on HSv3.
...
The manpage erroneously said "privkey" when "public-key" would have
been correct. Reported by "Felixix" as ticket 28979. Bugfix on
0.3.5.1-alpha.
2019-01-16 16:10:20 -05:00
Nick Mathewson
16430fdaf5
Merge branch 'maint-0.3.5'
2019-01-16 14:43:53 -05:00
Kris Katterjohn
f0408b844f
Add changes file for bug 28981
...
The fix was in commit 61636ad989de674698601284957dacde53cc4984.
Signed-off-by: Kris Katterjohn <katterjohn@gmail.com>
2019-01-16 14:40:31 -05:00
Kris Katterjohn
cbcf75d728
Update and fix a couple of comments in meminfo.c
...
This fixes a typo and also notes that HW_PHYSMEM64 is defined on
NetBSD (not just OpenBSD).
Signed-off-by: Kris Katterjohn <katterjohn@gmail.com>
2019-01-16 14:40:15 -05:00
Kris Katterjohn
0f3d88a159
Use HW_PHYSMEM instead of HW_USERMEM in get_total_system_memory_impl
...
The code checked for sysctl being available and HW_PHYSMEM being
defined, but HW_USERMEM was actually being used with sysctl instead
of HW_PHYSMEM.
The case for OpenBSD, etc. use HW_PHYSMEM64 (which is obviously a
64-bit variant of HW_PHYSMEM) and the case for OSX uses HW_MEMSIZE
(which appears to be a 64-bit variant of HW_PHYSMEM).
Signed-off-by: Kris Katterjohn <katterjohn@gmail.com>
2019-01-16 14:40:15 -05:00