mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
hs-v2: Warn of v2 obsolete if configured
For a user using "HiddenServiceVersion 2", a log warning is emitted indicating that v2 is now obsolete instead of a confusing message saying that the version is not supported. Also, if an introduction point gets a legacy (v2) ESTABLISH_INTRO, we'll simply close the circuit without emitting a protocol warning log onto the relay. Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
parent
6e6ad44262
commit
8ccfd4a51a
@ -436,6 +436,12 @@ config_generic_service(const hs_opts_t *hs_opts,
|
|||||||
/* Protocol version for the service. */
|
/* Protocol version for the service. */
|
||||||
if (hs_opts->HiddenServiceVersion == -1) {
|
if (hs_opts->HiddenServiceVersion == -1) {
|
||||||
/* No value was set; stay with the default. */
|
/* No value was set; stay with the default. */
|
||||||
|
} else if (hs_opts->HiddenServiceVersion == 2) {
|
||||||
|
log_warn(LD_CONFIG, "Onion services version 2 are obsolete. Please see "
|
||||||
|
"https://blog.torproject.org/v2-deprecation-timeline "
|
||||||
|
"for more details and for instructions on how to "
|
||||||
|
"transition to version 3.");
|
||||||
|
goto err;
|
||||||
} else if (CHECK_OOB(hs_opts, HiddenServiceVersion,
|
} else if (CHECK_OOB(hs_opts, HiddenServiceVersion,
|
||||||
HS_VERSION_MIN, HS_VERSION_MAX)) {
|
HS_VERSION_MIN, HS_VERSION_MAX)) {
|
||||||
goto err;
|
goto err;
|
||||||
|
@ -512,6 +512,11 @@ hs_intro_received_establish_intro(or_circuit_t *circ, const uint8_t *request,
|
|||||||
* ESTABLISH_INTRO and pass it to the appropriate cell handler */
|
* ESTABLISH_INTRO and pass it to the appropriate cell handler */
|
||||||
const uint8_t first_byte = request[0];
|
const uint8_t first_byte = request[0];
|
||||||
switch (first_byte) {
|
switch (first_byte) {
|
||||||
|
case TRUNNEL_HS_INTRO_AUTH_KEY_TYPE_LEGACY0:
|
||||||
|
case TRUNNEL_HS_INTRO_AUTH_KEY_TYPE_LEGACY1:
|
||||||
|
/* Likely version 2 onion service which is now obsolete. Avoid a
|
||||||
|
* protocol warning considering they still exists on the network. */
|
||||||
|
goto err;
|
||||||
case TRUNNEL_HS_INTRO_AUTH_KEY_TYPE_ED25519:
|
case TRUNNEL_HS_INTRO_AUTH_KEY_TYPE_ED25519:
|
||||||
return handle_establish_intro(circ, request, request_len);
|
return handle_establish_intro(circ, request, request_len);
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user