Age | Commit message (Collapse) | Author |
|
|
|
|
|
Conflicts:
src/feature/dirparse/authcert_parse.c
src/feature/dirparse/ns_parse.c
src/feature/hs/hs_service.c
src/lib/conf/conftesting.h
src/lib/log/log.h
src/lib/thread/threads.h
src/test/test_options.c
These conflicts were mostly related to autostyle improvements, with
one or two due to doxygen fixes.
|
|
|
|
|
|
In 8 places, our \file declarations didn't match the actual files
they were in.
|
|
|
|
|
|
|
|
Fixes bug 31736; bugfix on 0.0.7.
|
|
|
|
Part of ticket 30686.
|
|
|
|
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
This mechanism isn't perfect, and sometimes it will guess wrong,
but it will help our automation.
|
|
|
|
I don't believe any of these represent a real timing vulnerability
(remote timing against memcmp() on a modern CPU is not easy), but
these are the ones where I believe we should be more careful.
|
|
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
|
|
|
|
|
|
When releasing OpenSSL patch-level maintenance updates,
we do not want to rebuild binaries using it.
And since they guarantee ABI stability, we do not have to.
Without this patch, warning messages were produced
that confused users:
https://bugzilla.opensuse.org/show_bug.cgi?id=1129411
Fixes bug 30190; bugfix on 0.2.4.2-alpha commit 7607ad2bec
Signed-off-by: Bernhard M. Wiedemann <bwiedemann@suse.de>
|
|
|
|
Part of 29960.
|
|
|
|
base64_decode() does not require padding.
Part of 29660.
|
|
Also remove all checks for the return value, which were redundant anyway,
because the function never failed.
Part of 29660.
|
|
And fix the documentation on the function: it does produce trailing
"="s as padding.
Also remove all checks for the return value, which were redundant anyway,
because the function never failed.
Part of 29660.
|
|
... and ed25519_public_to_base64(). Also remove all checks for the return
values, which were redundant anyway, because the functions never failed.
Part of 29960.
|
|
Part of 29660.
|
|
(These functions look pretty unified to me.)
Part of 29660.
|
|
|
|
|
|
getpid() can be really expensive sometimes, and it can fail to
detect some kind of fork+prng mistakes, so we need to avoid it if
it's safe to do so.
This patch might slow down fast_prng a lot on any old operating
system that lacks a way to prevent ram from being inherited, AND
requires a syscall for any getpid() calls. But it should make sure
that we either crash or continue safely on incorrect fork+prng usage
elsewhere in the future.
|
|
Previously we did this for tests only, but it's valuable for getting
proper fork behavior in rand_fast.
|
|
This will cause the child process to construct a new one in a nice
safe way.
Closes ticket 29668; bug not in any released Tor.
|
|
|
|
* Move out code that depends on NSS to crypto_digest_nss.c
* Move out code that depends on OpenSSL to crypto_digest_openssl.c
* Keep the general code that is not specific to any of the above in
crypto_digest.c
|
|
|
|
|
|
|
|
|
|
The subsystems API makes this really simple, fortunately.
Closes ticket 29536
|
|
|
|
|
|
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.
|
|
This is the second part of refactoring the random-int-in-range code.
|
|
Closes ticket 29026; patch from Mangix.
|
|
Patch from Mangix. Closes part of ticket 29026.
|
|
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.
|