Nick Mathewson
f45107e7de
Rename crypto.c to crypto_cipher.c (since that's all it still has.)
2018-07-11 14:12:36 -04:00
Nick Mathewson
92db96d80f
Make our crypto library symbolic in the makefiles.
2018-07-11 12:51:36 -04:00
Nick Mathewson
e7f5f48d68
Rename torlog.[ch] to log.[ch]
...
Fun fact: these files used to be called log.[ch] until we ran into
conflicts with systems having a log.h file. But now that we always
include "lib/log/log.h", we should be fine.
2018-07-10 15:20:30 -04:00
Nick Mathewson
ef486e3c02
Fix every include path changed in the previous commit (automated)
...
I am very glad to have written this script.
2018-07-05 17:15:50 -04:00
Nick Mathewson
4593829861
Remove util.h
...
Inline its contents (which were all includes) into or.h, and some of
its contents into other places that didn't include or.h at all.
2018-07-05 15:04:18 -04:00
Nick Mathewson
6da0311d2c
Extract various enums and tiny structs from or.h
...
These all have a logical header to go in.
2018-07-01 15:20:37 -04:00
Nick Mathewson
1743dac078
Minimize headers that include crypto_formats and x25519 stuff
2018-07-01 15:20:37 -04:00
Nick Mathewson
471104eaa5
Remove needless includes from or.h
...
or.h should really include only the minimum of stuff from or/*,
common/*, and lib/*.
2018-07-01 15:20:37 -04:00
Nick Mathewson
43dc92441d
Tabify all of the .am files.
2018-07-01 09:37:28 -04:00
Nick Mathewson
935ba02565
Fix paths for buffers.h; automated.
2018-06-28 16:29:35 -04:00
Nick Mathewson
38fd3e0df0
Fix up the modules that include memarea.h (automated)
2018-06-28 09:25:58 -04:00
Nick Mathewson
3930416dec
Link GetAdaptersAddresses, rather than loading it on-demand.
...
This function has been present since Windows XP.
2018-06-27 09:12:57 -04:00
Nick Mathewson
da4ae8a6b6
Automated fixup of include paths after torlog.h movement.
2018-06-22 10:32:10 -04:00
Nick Mathewson
accf239fa3
Rectify include paths (automated)
2018-06-21 13:19:00 -04:00
Nick Mathewson
275aff6917
Rectify include paths (automated)
2018-06-21 10:47:11 -04:00
Nick Mathewson
b2346b1201
Refactor makefiles to keep list of internal libraries in one place.
...
This change makes it possible for us to change the list of libraries
more easily, without changing every single linker line.
2018-06-21 10:35:30 -04:00
Nick Mathewson
0dab29ce10
Run rectify_include_paths.py
2018-06-20 09:35:05 -04:00
Nick Mathewson
fb0019daf9
Update copyrights to 2018.
2018-06-20 08:13:28 -04:00
Nick Mathewson
50369f8981
Extract networkstatus_t and ..sr_info_t into their own headers
2018-06-15 13:45:15 -04:00
Nick Mathewson
72d2fd83d8
Split vote_{microdesc_hash,routerstatus}_t into their own headers
2018-06-15 13:23:02 -04:00
Nick Mathewson
8b7df72359
Split socks_request_t into its own header.
2018-06-15 13:01:50 -04:00
Nick Mathewson
22e9c64738
Extract rend_service_descriptor_t into its own header.
2018-06-15 12:18:17 -04:00
Nick Mathewson
1416f54d1e
Split dir_connection_t into its own header
2018-06-15 10:31:21 -04:00
Nick Mathewson
5d5c442e6a
Split entry and edge_connection_t into their own headers.
2018-06-15 10:10:24 -04:00
Nick Mathewson
953c769a86
fuzz: Move init_protocol_warning_severity_level() into global_init()
...
This is needed so llvm_fuzz will see it too.
2018-02-02 17:42:23 -05:00
Nick Mathewson
da778f2921
Use thread-safe types to store the LOG_PROTOCOL_WARN severity
...
Fixes a race condition; resolves 23954.
2018-01-31 14:37:09 -05:00
Nick Mathewson
11eaf208c0
Merge branch 'bug24247_032'
2017-11-11 14:46:33 -05:00
Nick Mathewson
a7ca71cf6b
Fix mock_crypto_pk_public_checksig__nocheck() to handle short RSA keys
...
This function -- a mock replacement used only for fuzzing -- would
have a buffer overflow if it got an RSA key whose modulus was under
20 bytes long.
Fortunately, Tor itself does not appear to have a bug here.
Fixes bug 24247; bugfix on 0.3.0.3-alpha when fuzzing was
introduced. Found by OSS-Fuzz; this is OSS-Fuzz issue 4177.
2017-11-11 14:44:45 -05:00
Nick Mathewson
0227aab1b7
Merge branch 'maint-0.3.2'
2017-11-06 13:01:56 -05:00
Nick Mathewson
5240afa713
Fix a memory leak on decryption non-failure of v3 hsdesc
...
If it decrypts something that turns out to start with a NUL byte,
then decrypt_desc_layer() will return 0 to indicate the length of
its result. But 0 also indicates an error, which causes the result
not to be freed by decrypt_desc_layer()'s callers.
Since we're trying to stabilize 0.3.2.x, I've opted for the simpler
possible fix here and made it so that an empty decrypted string will
also count as an error.
Fixes bug 24150 and OSS-Fuzz issue 3994.
The original bug was present but unreachable in 0.3.1.1-alpha. I'm
calling this a bugfix on 0.3.2.1-alpha since that's the first version
where you could actually try to decrypt these descriptors.
2017-11-06 12:59:11 -05:00
Nick Mathewson
ef25f957e7
Merge branch 'tor_api_squashed'
2017-11-01 13:22:16 -04:00
Nick Mathewson
0627512368
Merge branch 'bug24082_032' into maint-0.3.2
2017-10-31 14:31:21 -04:00
Nick Mathewson
5dce134fbb
Initialize the mock options in the fuzzing code
...
Fixes bug 24082; bugfix on 0.3.0.3-alpha. Found by Brian Carpenter.
2017-10-30 17:05:26 -04:00
Nick Mathewson
26e0909e51
In the hsdescv3 fuzzer, replace the decryption function.
...
The new decryption function performs no decryption, skips the salt,
and doesn't check the mac. This allows us to fuzz the
hs_descriptor.c code using unencrypted descriptor test, and exercise
more of the code.
Related to 21509.
2017-10-27 14:28:02 -04:00
David Goulet
c4ef21ff5e
fuzzing: Make hsdescv3 use the decoding API correctly
...
Fixes #21509
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-10-26 09:52:15 -04:00
David Goulet
4d2de821ce
Revert "Temporarily disable compilation of the v3 hs fuzzing code"
...
This reverts commit 5ef656e7d1
.
2017-10-26 09:41:47 -04:00
Nick Mathewson
72b5e4a2db
Move tor_git_revision into a new module.
...
At first, we put the tor_git_revision constant in tor_main.c, so
that we wouldn't have to recompile config.o every time the git
revision changed. But putting it there had unintended side effect
of forcing every program that wanted to link libor.a (including
test, test-slow, the fuzzers, the benchmarks, etc) to declare their
own tor_git_revision instance.
That's not very nice, especially since we want to start supporting
others who want to link against Tor (see 23846).
So, create a new git_revision.c file that only contains this
constant, and remove the duplicated boilerplate from everywhere
else.
Part of implementing ticket 23845.
2017-10-18 13:49:35 -04:00
Nick Mathewson
4ce60dab00
Resolve inconsistencies between buf refactor and HTTP connect
2017-09-05 14:41:35 -04:00
Nick Mathewson
73b0e2e6fd
Merge branch 'http_tunnel_squashed'
2017-09-05 14:34:29 -04:00
Nick Mathewson
ad9190404b
Add a fuzzer for HTTP CONNECT
2017-09-05 14:34:09 -04:00
Nick Mathewson
5ef656e7d1
Temporarily disable compilation of the v3 hs fuzzing code
...
Turns out, it wasn't up-to-date with the latest v3 hs API :(
2017-08-28 14:12:56 -04:00
Nick Mathewson
f53d405084
Fix compilation.
2017-08-28 14:00:00 -04:00
Nick Mathewson
18bc7fa70b
Merge remote-tracking branch 'haxxpop/fuzzing-hsv3'
2017-08-28 13:46:24 -04:00
Ties Stuij
2e99f839e9
22839: Build tor with rust enabled on win
...
- make tor_util static library name configurable
- fix Rust libary dependency order for Windows
2017-08-21 15:08:24 -04:00
Suphanat Chunhapanya
97347b1109
Fuzz outer layer of hsv3 descriptor
...
The code in fuzz_hsdescv3.c fuzzes the unencrypted layer of the hsv3
descriptor. We need to fuzz the encrypted layer later.
2017-08-13 17:50:51 +07:00
Nick Mathewson
1721487bea
Remove hardwired libfuzzer path; closes 22105.
2017-06-19 15:35:46 -04:00
Nick Mathewson
69ef94820b
Merge branch 'add_rust_squashed'
2017-05-19 08:47:18 -04:00
Nick Mathewson
5acddbbbf7
bug#22143/prop#140: identify input diffs by their digest-as-signed
...
See may 3 changes to prop140 for more background.
2017-05-03 13:09:08 -04:00
Sebastian Hahn
915fa39d0f
Add --enable-rust configure switch
...
Introduce a way to optionally enable Rust integration for our builds. No
actual Rust code is added yet and specifying the flag has no effect
other than failing the build if rustc and cargo are unavailable.
2017-04-29 08:55:57 +02:00
Alexander Færøy
22e6ad6f26
Clean up mentions of 'zlib' and rename the mentions to 'compressed'.
...
This patch cleans up in various places where 'zlib' is mentioned.
2017-04-27 15:51:14 +02:00
Nick Mathewson
4266ec766a
Use atomic counters for compressor allocation.
2017-04-25 10:29:07 -04:00
Alexander Færøy
ce1feae9d9
Add --enable-zstd to our configure script.
...
This patch adds support for enabling support for Zstandard to our configure
script. By default, the --enable-zstd option is set to "auto" which means if
libzstd is available we'll build Tor with Zstandard support.
See: https://bugs.torproject.org/21662
2017-04-25 08:10:09 -04:00
Alexander Færøy
157af1d26e
Add --enable-lzma to our configure script.
...
This patch adds support for enabling support for LZMA to our configure
script. By default, the --enable-lzma option is set to "auto" which
means if liblzma is available we'll build Tor with LZMA support.
See: https://bugs.torproject.org/21662
2017-04-25 08:06:02 -04:00
Nick Mathewson
6657fe1e54
Generate src/test/fuzz/include.am from a script
...
It was very error-prone to maintain this by hand.
2017-03-16 17:14:10 -04:00
Nick Mathewson
4a4f1e44af
Merge branch 'prop140_21643_diff_only_squashed'
2017-03-16 14:58:43 -04:00
Nick Mathewson
dd92579b63
Add fuzzers for consensus diff backend code
...
This takes two fuzzers: one which generates a diff and makes sure it
works, and one which applies a diff.
So far, they won't crash, but there's a bug in my
string-manipulation code someplace that I'm having to work around,
related to the case where you have a blank line at the end of a
file, or where you diff a file with itself.
2017-03-16 14:42:55 -04:00
Nick Mathewson
7505f452c8
Run the copyright update script.
2017-03-15 16:13:17 -04:00
Nick Mathewson
491348cb8c
Rename make fuzz to make test-fuzz-corpora
2017-02-14 18:04:10 -05:00
Nick Mathewson
77788fa537
Fix a memory-leak in fuzz_vrs.c
2017-02-01 10:57:01 -05:00
Nick Mathewson
088cc3604b
Don't use %zu in fuzz-http: windows doesn't like it.
2017-01-30 09:09:42 -05:00
Nick Mathewson
d71fc47438
Update documentation and testing integration for fuzzing
2017-01-30 08:37:27 -05:00
Nick Mathewson
2202ad7ab0
Fix a pair of compilation errors.
2017-01-30 08:37:27 -05:00
Nick Mathewson
1d8e9e8c69
Fix memory leak on zero-length input on fuzz_http.c
2017-01-30 08:37:27 -05:00
Nick Mathewson
34fd636870
memory leak in fuzz_vrs
2017-01-30 08:37:26 -05:00
Nick Mathewson
09d01466b2
actually build .as for fuzzing
2017-01-30 08:37:26 -05:00
Nick Mathewson
1c7862bfb4
missing backslash
2017-01-30 08:37:26 -05:00
Nick Mathewson
f547352637
differently build oss fuzzers
2017-01-30 08:37:26 -05:00
Nick Mathewson
cf71f8ad32
More oss-fuzz fixes
2017-01-30 08:37:25 -05:00
Nick Mathewson
92679d90d5
Try to refactor OSS fuzzers into static libraries.
2017-01-30 08:37:25 -05:00
Nick Mathewson
1b244a64e4
libfuzzer tweaks per recommendations
2017-01-30 08:37:25 -05:00
Nick Mathewson
024fa9d4d7
routerstatus fuzzing
2017-01-30 08:37:25 -05:00
Nick Mathewson
eb414a08a9
Add libfuzzer support.
2017-01-30 08:37:25 -05:00
Nick Mathewson
b1567cf500
Three more fuzzers: consensus, hsdesc, intro points
2017-01-30 08:37:24 -05:00
Nick Mathewson
83e9918107
Tools for working with directories of fuzzed stuff.
2017-01-30 08:37:24 -05:00
Nick Mathewson
301eff0e90
fuzzing: Add copyright notices and whitespace fixes
2017-01-30 08:37:24 -05:00
Nick Mathewson
4afb155db2
Add microdesc format fuzzer.
2017-01-30 08:37:24 -05:00
Nick Mathewson
3c74855934
Addition to test cases: make sure fuzzer binaries allow known cases
...
This isn't fuzzing per se, so much as replaying the highlights of
past fuzzer runs.
2017-01-30 08:37:24 -05:00
Nick Mathewson
81e44c2257
Add extrainfo fuzzer
2017-01-30 08:37:24 -05:00
Nick Mathewson
44fa14c0e2
Try to tweak fuzzing.md to correspond to my changes
2017-01-30 08:37:24 -05:00
teor
416e2f6b28
Guide fuzzing by adding standard tor GET and POST testcases
2017-01-30 08:37:23 -05:00
Nick Mathewson
56b61d1831
Add more tweaks from teor's http fuzzing code.
...
Move option-manipulation code to fuzzing_common.
2017-01-30 08:37:23 -05:00
Nick Mathewson
949e9827d6
Add a descriptor fuzzing dictionary.
2017-01-30 08:37:23 -05:00
Nick Mathewson
ca657074b9
Fuzzing: initialize siphash key, don't init_logging twice.
2017-01-30 08:37:23 -05:00
Nick Mathewson
0666928c5c
Replace signature-checking and digest-checking while fuzzing
2017-01-30 08:37:22 -05:00
Nick Mathewson
60769e710f
Port fuzz_http to use fuzzing_common.
...
Move common logic from fuzz_http to fuzzing_common.
2016-12-19 15:34:56 -05:00
teor
a967d568dc
Add a fuzzer for the http used in our directory protocol
...
(Teor wrote the code, nick extracted it. It won't compile yet.)
2016-12-19 15:34:56 -05:00
Nick Mathewson
b96c70d668
Fuzzing: Add an initial fuzzing tool, for descriptors.
...
This will need some refactoring and mocking.
2016-12-19 15:34:55 -05:00