Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Given that ed25519 public key validity checks are usually not needed
and (so far) they are only necessary for onion addesses in the Tor
protocol, we decided to fix this specific bug instance without
modifying the rest of the codebase (see below for other fix
approaches).
In our minimal fix we check that the pubkey in
hs_service_add_ephemeral() is valid and error out otherwise.
|
|
|
|
When a service can not upload its descriptor(s), we have no logs on why. This
adds logging for each possible reason for each descriptors.
That logging is emitted every second so it is rate limited for each reason and
per descriptor.
Closes #33400
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
|
|
|
|
|
|
- Fix a bug and add unittest.
- Add changes file.
- Add man page entry.
|
|
- Loose the asserts on num_pkeys.
- Straighten some dangling &.
- Fix some unpredictable memcpys.
|
|
|
|
Fixes #28992
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
|
|
Fixes #28992
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
Based on David's review.
|
|
|
|
When the ONION_CLIENT_AUTH_REMOVE command is given to tor, now also remove the
descriptor associated with the client authorization credentials.
Fixes #33148
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
Fixes #33139.
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
Also fix some memleaks of other OB unittests.
|
|
|
|
We do this by including the instance's subcredentials to the list of
subcredentials that are used during INTRO2 decryption.
|
|
Now we use the exact same INTRO2 decrypt logic regardless of whether the
service is an OB instance or not.
The new get_subcredential_for_handling_intro2_cell() function is responsible
for loading the right subcredentials in either case.
|
|
We now assign OB subcredentials to the service instead of computing them on the
spot. See hs_ob_refresh_keys() for more details.
|
|
|
|
This approach saves us a pair of curve25519 operations for every
subcredential but the first. It is not yet constant-time.
I've noted a few places where IMO we should refactor the code so
that the complete list of subcredentials is passed in earlier.
|
|
|
|
|
|
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
Pointed by nickm during the review of #32709.
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
Closes #32709
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
At this commit, the service reads the config file and parse it to finally set
the service config object with the options.
Part of #32709
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
Part of #32709
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
The hs_parse_address() can not be used without an options_t object existing
since on error it uses the escaped_safe_str() that looks at the options.
This new function won't log and returns an error message in case of failure
that can then be used to log.
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
Closes ticket 32137.
|
|
|
|
Without this change, compilation success depends on include order in
several tricky ways.
|
|
This fixes a case where our compilation would depend on include order.
|
|
This frees us from a dependency on include order.
|
|
|
|
These changes were created using the "make autostyle" from
32522, and then split into commits.
|
|
Some ".c" files define *_PRIVATE macros, but those macros are
not used in any header file. Delete them.
These changes were created using the "make autostyle" from
32522, and then split into commits.
|
|
|
|
instead of connection_list_by_type_state()
|
|
|
|
With v3, the "pending_final_cpath" of a circuit is always NULL which means
that for v3, established client rendezvous circuit waiting for the intro point
to ACK, will always end up timing out quickly.
This can increase the delays to which you connect to a service since in order
to succeed, the rendezvous circuit needs to fully established
(CIRCUIT_PURPOSE_C_REND_JOINED) within the cutoff of the introduction circuit
as well which is these days around 2-3 seconds.
Fixes #32021
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
|
|
All of these files contain "*.h", except for:
* src/app/config/.may_include
* src/test/.may_include
which also contain "*.inc".
This change prevents includes of "*.c" files, and other
unusually named files.
Part of 32609.
|
|
Found by Stem regression tests. Reported by atagar.
Fixes #32664
Signed-off-by: David Goulet <dgoulet@torproject.org>
|
|
|