]> git.ipfire.org Git - thirdparty/tor.git/log
thirdparty/tor.git
2 months agoCGO: Fix authenticated-sendme tag handling.
Nick Mathewson [Wed, 23 Apr 2025 15:27:07 +0000 (11:27 -0400)] 
CGO: Fix authenticated-sendme tag handling.

See discussion at torspec#328: it's important that our
SENDME authentication tag always be taken based on the
_encrypted_ cell.

2 months agoCGO: Split modes into forward and backward variants.
Nick Mathewson [Wed, 23 Apr 2025 15:19:43 +0000 (11:19 -0400)] 
CGO: Split modes into forward and backward variants.

I'll need this for getting tags right wrt torspec!328.

2 months agoImplement the encryption operations for counter galois onion.
Nick Mathewson [Mon, 21 Apr 2025 21:41:11 +0000 (17:41 -0400)] 
Implement the encryption operations for counter galois onion.

2 months agoImplement low-level encryption functions for CGO.
Nick Mathewson [Sun, 20 Apr 2025 14:22:54 +0000 (10:22 -0400)] 
Implement low-level encryption functions for CGO.

These include a regular LRW2 tweakable block cipher,
a pseudorandom function,
and a UIV+ tweakable wide-block rugged pseudorandom permutation.

Also included are a few test vectors from the reference
 implementation.

2 months agoaes: Support for replacing an AES key without free+alloc
Nick Mathewson [Sun, 20 Apr 2025 22:49:40 +0000 (18:49 -0400)] 
aes: Support for replacing an AES key without free+alloc

2 months agoSupport for counter mode with raw AES.
Nick Mathewson [Sun, 20 Apr 2025 22:17:22 +0000 (18:17 -0400)] 
Support for counter mode with raw AES.

We'll want this for CGO because we want the ability to use the same AES
key several times with multiple different IVs: neither OpenSSL's EVP
interface nor NSS's PK11 API has a good interface to do that.
(This is usually expressed in terms of "seeking" to a new position
on the stream, but there isn't an API for that either.)

2 months agocrypto: Add support for raw (ECB) AES
Nick Mathewson [Sat, 19 Apr 2025 14:56:25 +0000 (10:56 -0400)] 
crypto: Add support for raw (ECB) AES

We'll need this to define the LRW2 tweakable block cipher used in CGO.

2 months agoPolyval: add ability to store key separately.
Nick Mathewson [Sun, 20 Apr 2025 14:37:38 +0000 (10:37 -0400)] 
Polyval: add ability to store key separately.

This will help reduce storage, since we never actually need
to keep a running total outside of a function.

2 months agoIntegrate polyval into our build system and give a test
Nick Mathewson [Sat, 19 Apr 2025 13:46:31 +0000 (09:46 -0400)] 
Integrate polyval into our build system and give a test

2 months agopolyval: comments throughout.
Nick Mathewson [Sat, 19 Apr 2025 13:32:07 +0000 (09:32 -0400)] 
polyval: comments throughout.

2 months agoDetect correct polyval implementation (mostly)
Nick Mathewson [Sat, 19 Apr 2025 13:10:58 +0000 (09:10 -0400)] 
Detect correct polyval implementation (mostly)

I'm saying "mostly" because this will be wrong on really old intel;
we'll need a cpuid workaround if we need to support those.

2 months agoAdapt pclmul.c to work with polyval.c
Nick Mathewson [Sat, 19 Apr 2025 01:09:25 +0000 (21:09 -0400)] 
Adapt pclmul.c to work with polyval.c

2 months agoadapt 32-bit ctmul.c to work with polyval.c
Nick Mathewson [Sat, 19 Apr 2025 00:43:10 +0000 (20:43 -0400)] 
adapt 32-bit ctmul.c to work with polyval.c

2 months agoAdapt ctmul64.c to work with polyval.c.
Nick Mathewson [Sat, 19 Apr 2025 00:25:29 +0000 (20:25 -0400)] 
Adapt ctmul64.c to work with polyval.c.

2 months agoUnfinished polyval implementation, without a multiplier.
Nick Mathewson [Sat, 19 Apr 2025 00:14:49 +0000 (20:14 -0400)] 
Unfinished polyval implementation, without a multiplier.

2 months agoRename files so it no longer looks like we are doing ghash
Nick Mathewson [Fri, 18 Apr 2025 23:16:17 +0000 (19:16 -0400)] 
Rename files so it no longer looks like we are doing ghash

2 months agoAdd code from BearSSL's ghash implementation.
Nick Mathewson [Fri, 18 Apr 2025 23:06:16 +0000 (19:06 -0400)] 
Add code from BearSSL's ghash implementation.

Polyval (which we need for CGO) is very similar to ghash,
and most of this code should be reusable with suitable adaptation.

2 months agoUnrelated: fix warnings about NSS kex algorithms.
Nick Mathewson [Tue, 22 Apr 2025 13:25:39 +0000 (09:25 -0400)] 
Unrelated: fix warnings about NSS kex algorithms.

3 months agoMerge branch 'openssl_cleanup_part3' into 'main'
Nick Mathewson [Tue, 6 May 2025 23:13:02 +0000 (19:13 -0400)] 
Merge branch 'openssl_cleanup_part3' into 'main'

Improve various OpenSSL settings

Closes #41067

See merge request tpo/core/tor!889

3 months agoDefine a DH2048_KEY_LEN.
Nick Mathewson [Tue, 6 May 2025 22:40:39 +0000 (18:40 -0400)] 
Define a DH2048_KEY_LEN.

3 months agoMerge branch 'ticket41064' into 'main'
Alexander Hansen Færøy [Tue, 6 May 2025 20:13:24 +0000 (22:13 +0200)] 
Merge branch 'ticket41064' into 'main'

Use RELAY_PAYLOAD_SIZE_MIN for some cc calculations

Closes #41064

See merge request tpo/core/tor!890

3 months agoMerge branch 'bug41043' into 'main'
Alexander Hansen Færøy [Tue, 6 May 2025 20:01:53 +0000 (22:01 +0200)] 
Merge branch 'bug41043' into 'main'

Avoid crash on failure to read FamilyKeyDir

See merge request tpo/core/tor!886

3 months agoUse RELAY_PAYLOAD_SIZE_MIN for some cc calculations
Nick Mathewson [Tue, 6 May 2025 16:50:42 +0000 (12:50 -0400)] 
Use RELAY_PAYLOAD_SIZE_MIN for some cc calculations

These are for the cases where mikeperry and dgoulet had suggestions
on !878.

Closes #41064.

3 months agoMerge branch '41051_cell_format' into 'main'
Nick Mathewson [Tue, 6 May 2025 16:29:13 +0000 (12:29 -0400)] 
Merge branch '41051_cell_format' into 'main'

Prop359: Add functions to encode/decode new relay message format for CGO

Closes #41051 and #41056

See merge request tpo/core/tor!878

3 months agoFix compilation with NSS.
Nick Mathewson [Tue, 6 May 2025 15:39:32 +0000 (11:39 -0400)] 
Fix compilation with NSS.

3 months agoRemove check for unaccelerated ECC
Nick Mathewson [Tue, 6 May 2025 14:45:00 +0000 (10:45 -0400)] 
Remove check for unaccelerated ECC

The "enable-ec_nistp_64_gcc_128" option does not appear to be necessary
in any of our supported versions.

3 months agoChange our TLS finite-field diffie-hellman group to ffdhe2048.
Nick Mathewson [Tue, 6 May 2025 14:35:03 +0000 (10:35 -0400)] 
Change our TLS finite-field diffie-hellman group to ffdhe2048.

(We should never actually _use_ finite-field Diffie-Hellman
with TLS.)

3 months agoUpdate client cipher list to match current firefox
Nick Mathewson [Tue, 6 May 2025 14:08:43 +0000 (10:08 -0400)] 
Update client cipher list to match current firefox

(Shelikhoo says that this countermeasure is still likely to be
helpful for some users, and so we might as well keep it.)

3 months agoUpdate get_mozillia_ciphers to work with current firefox.
Nick Mathewson [Tue, 6 May 2025 14:07:12 +0000 (10:07 -0400)] 
Update get_mozillia_ciphers to work with current firefox.

This script is _still_ a complete kludge, and I don't currently propose to
un-kludge it.  With luck, today will be the last day we run it.

3 months agoRemove attempt to override TLS 1.3 server ciphersuites
Nick Mathewson [Tue, 6 May 2025 13:01:37 +0000 (09:01 -0400)] 
Remove attempt to override TLS 1.3 server ciphersuites

This was unnecessary _and_ broken!

It was unnecessary because the default list of TLS 1.3 ciphersuites
has always been pretty reasonable.

It was broken because:
 - SSL_CTX_set_cipher_list only affects the list of TLS 1.2 ciphersuites.
 - There have _never_ been a set of macros  named TLS1_3_TXT_*
   in any openssl version, as far as I can tell.

3 months agoRemove check and test for SSL_CIPHER_find
Nick Mathewson [Tue, 6 May 2025 12:48:07 +0000 (08:48 -0400)] 
Remove check and test for SSL_CIPHER_find

Nothing uses it any more.

3 months agoStop detecting HKDF: Our supported OpenSSL versions always have it
Nick Mathewson [Tue, 6 May 2025 12:43:34 +0000 (08:43 -0400)] 
Stop detecting HKDF: Our supported OpenSSL versions always have it

3 months agoStop detecting SSL_get_client_ciphers: we enver use it.
Nick Mathewson [Tue, 6 May 2025 12:41:14 +0000 (08:41 -0400)] 
Stop detecting SSL_get_client_ciphers: we enver use it.

3 months agoOpenSSL: Require TLS ≥ 1.2
Nick Mathewson [Tue, 6 May 2025 12:36:19 +0000 (08:36 -0400)] 
OpenSSL: Require TLS ≥ 1.2

TLS 1.2 was added in OpenSSL version 1.0.1,
which was our minimal supported openssl version for a long time:
so we can be sure that all clients and relays have it.

(I'd like to require TLS 1.3, but that would break everybody
who built with 1.0.1.)

Part of #41067.

3 months agoopenssl: Use TLS_method unconditionally.
Nick Mathewson [Tue, 6 May 2025 12:25:25 +0000 (08:25 -0400)] 
openssl: Use TLS_method unconditionally.

Every version of openssl/libressl we support has this.

3 months agorelay_msg: Document and enforce length invariants.
Nick Mathewson [Tue, 6 May 2025 00:38:55 +0000 (20:38 -0400)] 
relay_msg: Document and enforce length invariants.

This takes a slightly different approach from suggested in the MR:
we document that a relay_msg_t must _always_ have a valid length,
and note that this warning still applies for relay_msg_copy.

3 months agorelay_msg: Use relay_cell_max_payload_size when setting maxlen
Nick Mathewson [Mon, 5 May 2025 16:24:38 +0000 (12:24 -0400)] 
relay_msg: Use relay_cell_max_payload_size when setting maxlen

3 months agoFix tests when built with --all-bugs-are-fatal.
Nick Mathewson [Mon, 21 Apr 2025 19:34:00 +0000 (15:34 -0400)] 
Fix tests when built with --all-bugs-are-fatal.

3 months agoUse FREE_AND_NULL with conflux_msg_t.
Nick Mathewson [Mon, 21 Apr 2025 19:13:36 +0000 (15:13 -0400)] 
Use FREE_AND_NULL with conflux_msg_t.

3 months agoChanges file for #41051.
Nick Mathewson [Fri, 18 Apr 2025 01:25:51 +0000 (21:25 -0400)] 
Changes file for #41051.

3 months agoFill in XXXX for relay_msg.c
Nick Mathewson [Fri, 18 Apr 2025 01:20:57 +0000 (21:20 -0400)] 
Fill in XXXX for relay_msg.c

3 months agoRemove the unused relay_msg_set function
Nick Mathewson [Fri, 18 Apr 2025 01:19:34 +0000 (21:19 -0400)] 
Remove the unused relay_msg_set function

3 months agoChange relay_msg_t to _not_ hold a copy of the message.
Nick Mathewson [Fri, 18 Apr 2025 01:15:30 +0000 (21:15 -0400)] 
Change relay_msg_t to _not_ hold a copy of the message.

Previously we had to memdup every time we parsed a relay_msg_t;
but that's unnecessary, since (most) every time we use it, we have
a longer-lived cell object.

This _did_ require some hacking in relay_msg_copy, but I think the
gain in simplicity is worth it.

3 months agoRemove redundant relay_cell_proto fields
Nick Mathewson [Fri, 18 Apr 2025 00:31:44 +0000 (20:31 -0400)] 
Remove redundant relay_cell_proto fields

These did not turn out to be useful for anything.

3 months agoFix a bug in conflux_send_switch_command.
Nick Mathewson [Fri, 18 Apr 2025 00:26:20 +0000 (20:26 -0400)] 
Fix a bug in conflux_send_switch_command.

Using RELAY_PAYLOAD_SIZE(_MAX) here would send a relay message that used up
more than the actual length of the cell.  Instead, send only the actual
CONFLUX_SWITCH message.

Closes #41056; bugfix on 0.4.8.1-alpha.

3 months agoRename and hand-audit all users of RELAY_PAYLOAD_SIZE.
Nick Mathewson [Fri, 18 Apr 2025 00:21:06 +0000 (20:21 -0400)] 
Rename and hand-audit all users of RELAY_PAYLOAD_SIZE.

Since the maximum number of bytes you can put in a relay message
is no longer constant, it doesn't make sense to have a "size" for this.
Instead, we can only have a "max" or "min" size.

3 months agoMove circuit accessors to relay.c
Nick Mathewson [Thu, 17 Apr 2025 23:46:30 +0000 (19:46 -0400)] 
Move circuit accessors to relay.c

3 months agoAdd a much-needed convenience accessor for max payload len.
Nick Mathewson [Thu, 17 Apr 2025 23:39:43 +0000 (19:39 -0400)] 
Add a much-needed convenience accessor for max payload len.

3 months agoRename relay_msg_get_format to circuit_get_relay_format.
Nick Mathewson [Thu, 17 Apr 2025 23:37:15 +0000 (19:37 -0400)] 
Rename relay_msg_get_format to circuit_get_relay_format.

3 months agoMore tolerance for packaging too-long payloads
Nick Mathewson [Thu, 17 Apr 2025 23:31:36 +0000 (19:31 -0400)] 
More tolerance for packaging too-long payloads

(There are _lots_ of places that build a payload that would be long enough
to fit into a V0 cell, then pass it to relay_send_command_from_edge.)

3 months agorelay_msg: use IF_BUG_ONCE
Nick Mathewson [Thu, 17 Apr 2025 23:20:37 +0000 (19:20 -0400)] 
relay_msg: use IF_BUG_ONCE

If these bugs are reachable, they're likely to fill up the logs.

3 months agoAbolish RELAY_HEADER_SIZE.
Nick Mathewson [Thu, 17 Apr 2025 23:17:26 +0000 (19:17 -0400)] 
Abolish RELAY_HEADER_SIZE.

It was frequently used before to index into a cell, which
is never right any more.

3 months agoFold relay_cell.h into relay_msg.h
Nick Mathewson [Thu, 17 Apr 2025 20:47:39 +0000 (16:47 -0400)] 
Fold relay_cell.h into relay_msg.h

It no longer needs an independent existence.

3 months agoAbolish relay_header_t, except for testing.
Nick Mathewson [Thu, 17 Apr 2025 20:44:17 +0000 (16:44 -0400)] 
Abolish relay_header_t, except for testing.

With this change we no longer have a separate and possibly divergent
encoder for cells.

Also, abolish the accessors in relay_cell.c: It turns out that they
don't make sense with CGO.

3 months agoprop340: Use relay messages accross the code
David Goulet [Thu, 5 Oct 2023 16:29:54 +0000 (12:29 -0400)] 
prop340: Use relay messages accross the code

Author: David Goulet <dgoulet@torproject.org>

(This won't yet compile; for now I am _only_ taking the parts as
dgoulet wrote them, minus a codec-only piece.)

Modified by nickm:

Encode and decode relay messages using our new functions.

In David's original branch, this was done using codec objects,
but since we aren't doing prop340, this is simpler.

3 months agoprop340: Implement useful helper functions
David Goulet [Thu, 5 Oct 2023 16:17:16 +0000 (12:17 -0400)] 
prop340: Implement useful helper functions

Author: David Goulet <dgoulet@torproject.org>

(modified by nickm: no longer refers to codecs.)

3 months agoAdd relay cell format field to circuits
Nick Mathewson [Thu, 17 Apr 2025 17:24:44 +0000 (13:24 -0400)] 
Add relay cell format field to circuits

For client circuits, it is a per-hop field;
for OR circuits, it is a per-circuit field.

3 months agoprop359: Implement relay cell encoder/decoders
Nick Mathewson [Thu, 17 Apr 2025 17:15:04 +0000 (13:15 -0400)] 
prop359: Implement relay cell encoder/decoders

I decided not to use a codec-based approach here.
Since we aren't implementing prop340, there is exactly one cell
per message, so we don't need to keep any state
in between cells or messages.

3 months agoFunction to test whether a relay command is recognized.
Nick Mathewson [Thu, 17 Apr 2025 13:52:40 +0000 (09:52 -0400)] 
Function to test whether a relay command is recognized.

Cherry-picked from dgoulet's 8fe1c503

Author: David Goulet <dgoulet@torproject.org>

3 months agoor.h: Extend comment about cell format to include v1 format.
Nick Mathewson [Thu, 17 Apr 2025 13:50:33 +0000 (09:50 -0400)] 
or.h: Extend comment about cell format to include v1 format.

3 months agoprop359: Introduce an enum for cell format.
Nick Mathewson [Thu, 17 Apr 2025 13:39:06 +0000 (09:39 -0400)] 
prop359: Introduce an enum for cell format.

(Using u8 everywhere makes me nervous.)

3 months agoprop359: Add relay msg basics.
David Goulet [Thu, 5 Oct 2023 14:49:59 +0000 (10:49 -0400)] 
prop359: Add relay msg basics.

3 months agoAdd some TODOs for CGO msg format
Nick Mathewson [Thu, 17 Apr 2025 13:23:49 +0000 (09:23 -0400)] 
Add some TODOs for CGO msg format

3 months agoprop359: Add relay cell access functions
David Goulet [Thu, 5 Oct 2023 15:13:35 +0000 (11:13 -0400)] 
prop359: Add relay cell access functions

Author: David Goulet <dgoulet@torproject.org>

3 months agoMerge branch 'maint-0.4.8'
David Goulet [Mon, 5 May 2025 16:37:41 +0000 (12:37 -0400)] 
Merge branch 'maint-0.4.8'

3 months agocrypt_openssl_mgt: define DISABLE_ENGINES after OPENSSL_NO_ENGINE
orbea [Thu, 31 Aug 2023 21:35:52 +0000 (14:35 -0700)] 
crypt_openssl_mgt: define DISABLE_ENGINES after OPENSSL_NO_ENGINE

With LibreSSL-3.8.1 these engines are no long available causing a build
failure, but LibreSSL correctly defines OPENSSL_NO_ENGINE as part of its
opensslfeatures.h. However Tor includes crypto_openssl_mgt.h before any
of the openssl includes which would define OPENSSL_NO_ENGINE and then
fails to define DISABLE_ENGINES.

As the define is used in only a single .c file it is best to move it
there.

Signed-off-by: orbea <orbea@riseup.net>
3 months agocompat_openssl: fix for LibreSSL 4.1.0
orbea [Wed, 30 Apr 2025 18:47:13 +0000 (11:47 -0700)] 
compat_openssl: fix for LibreSSL 4.1.0

Starting with LibreSSL 4.1.0 this now causes a build failure:

src/lib/tls/tortls_openssl.c: In function 'tor_tls_setup_session_secret_cb':
src/lib/tls/tortls_openssl.c:1059:39: error: passing argument 2 of 'SSL_set_session_secret_cb' from incompatible pointer type [-Wincompatible-pointer-types]
 1059 |   SSL_set_session_secret_cb(tls->ssl, tor_tls_session_secret_cb, NULL);
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                       |
      |                                       int (*)(SSL *, void *, int *, struct stack_st_SSL_CIPHER *, SSL_CIPHER **, void *) {aka int (*)(struct ssl_st *, void *, int *, struct stack_st_SSL_CIPHER *, struct ssl_cipher_st **, void *)}
In file included from src/lib/tls/tortls_openssl.c:48:
/usr/include/openssl/ssl.h:1489:30: note: expected 'tls_session_secret_cb_fn' {aka 'int (*)(struct ssl_st *, void *, int *, struct stack_st_SSL_CIPHER *, const struct ssl_cipher_st **, void *)'} but argument is of type 'int (*)(SSL *, void *, int *, struct stack_st_SSL_CIPHER *, SSL_CIPHER **, void *)' {aka 'int (*)(struct ssl_st *, void *, int *, struct stack_st_SSL_CIPHER *, struct ssl_cipher_st **, void *)'}
 1489 |     tls_session_secret_cb_fn tls_session_secret_cb, void *arg);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~

Signed-off-by: orbea <orbea@riseup.net>
3 months agoMerge branch 'openssl_cleanup_part2_v2' into 'main'
David Goulet [Mon, 5 May 2025 15:40:05 +0000 (15:40 +0000)] 
Merge branch 'openssl_cleanup_part2_v2' into 'main'

Require OpenSSL >= 1.1.1 or LibreSSL >= 3.7

See merge request tpo/core/tor!885

3 months agoMerge branch 'openssl_cleanup_part1' into 'main'
David Goulet [Mon, 5 May 2025 14:38:52 +0000 (14:38 +0000)] 
Merge branch 'openssl_cleanup_part1' into 'main'

Remove support for clients < 0.2.3.17-beta

Closes #41031

See merge request tpo/core/tor!883

3 months agoAvoid crash on failure to read FamilyKeyDir
Nick Mathewson [Mon, 28 Apr 2025 16:29:05 +0000 (12:29 -0400)] 
Avoid crash on failure to read FamilyKeyDir

Previously we could try to iterate over `files`
even if it were NULL.

Fixes bug #41043; bugfix on 0.4.9.2-alpha.

3 months agoWarn when OpenSSL is older than 3.0
Nick Mathewson [Mon, 28 Apr 2025 15:32:21 +0000 (11:32 -0400)] 
Warn when OpenSSL is older than 3.0

Running with an unsupported version of openssl is not IMO
a very good idea.

3 months agochanges file for new *ssl version requirements.
Nick Mathewson [Sun, 27 Apr 2025 15:19:29 +0000 (11:19 -0400)] 
changes file for new *ssl version requirements.

3 months agoRemove code based on OPENSSL_VERSION_NUMBER
Nick Mathewson [Sun, 27 Apr 2025 14:51:12 +0000 (10:51 -0400)] 
Remove code based on OPENSSL_VERSION_NUMBER

(Except for some code in aes_openssl.c, which has potential to conflict
with CGO-related branches.)

3 months agoRemove NEW_THREAD_API
Nick Mathewson [Sun, 27 Apr 2025 14:47:45 +0000 (10:47 -0400)] 
Remove NEW_THREAD_API

Every supported OpenSSL version and fork has the modern API.

3 months agoRemove OPENSSL_1_1_API macro
Nick Mathewson [Sun, 27 Apr 2025 14:27:05 +0000 (10:27 -0400)] 
Remove OPENSSL_1_1_API macro

We no longer support any version without this API.

3 months agoRemove HAVE_STRUCT_SSL_METHOD_ST_GET_CIPHER_BY_CHAR as unused
Nick Mathewson [Sun, 27 Apr 2025 14:04:07 +0000 (10:04 -0400)] 
Remove HAVE_STRUCT_SSL_METHOD_ST_GET_CIPHER_BY_CHAR as unused

It was for a compatibility kludge which, mercifully, we no longer need.

3 months agoRemove HAVE_SSL_STATE and SIZEOF_SHA_CTX
Nick Mathewson [Sun, 27 Apr 2025 14:03:04 +0000 (10:03 -0400)] 
Remove HAVE_SSL_STATE and SIZEOF_SHA_CTX

HAVE_SSL_STATE is always "no"; SIZEOF_SHA_CTX is never used.

3 months agoRequire OpenSSL >= 1.1.1 or LibreSSL >= 3.7
Nick Mathewson [Sat, 26 Apr 2025 13:37:33 +0000 (09:37 -0400)] 
Require OpenSSL >= 1.1.1 or LibreSSL >= 3.7

3.0 is the oldest supported version of OpenSSL; it was first released
in September 2021.  OpenSSL 1.1.1 (the previous series) reached EOL in
September 2023, but it is still used in Debian oldstable, which will
be around till September 2026.

LibreSSL 3.7 is not quite supported, but I don't have as firm a conviction
about which LibreSSL versions we should handle.  It was released in 2022.

3 months agoRemove tor_tls_verify
Nick Mathewson [Mon, 28 Apr 2025 15:10:55 +0000 (11:10 -0400)] 
Remove tor_tls_verify

Despite its name, it was only used for the v1 handshake.

3 months agoFix compilation on Libressl
Nick Mathewson [Sun, 27 Apr 2025 14:31:24 +0000 (10:31 -0400)] 
Fix compilation on Libressl

3 months agoRestore a pair of erroneously removed cases
Nick Mathewson [Fri, 25 Apr 2025 14:24:50 +0000 (10:24 -0400)] 
Restore a pair of erroneously removed cases

The one in connection_or.c was crucial: it's the
thing that made OR negotiation actually work.

The one in channeltls.c was just defensive programming, but it's
valid defensive programming: by the time we enter from
channel_handle_var_cell, channel_tls_process_vesions_cell,
we have changed our state via enter_v3_handshake_with_cell.

3 months agoFix compilation for nss.
Nick Mathewson [Fri, 25 Apr 2025 00:41:21 +0000 (20:41 -0400)] 
Fix compilation for nss.

3 months agoChanges file for 41031.
Nick Mathewson [Thu, 24 Apr 2025 18:51:56 +0000 (14:51 -0400)] 
Changes file for 41031.

3 months agoRemove support for client cipher classification.
Nick Mathewson [Thu, 24 Apr 2025 18:25:24 +0000 (14:25 -0400)] 
Remove support for client cipher classification.

For a long time, clients would lie about the set of ciphersuites
they supported, in a misguided pre-pluggable-transport attempt
to avoid protocol identification.

Such clients are now long gone; clients stopped lying
about ciphersuites after 0.2.3.17-beta.

3 months agoRenumber OR_CONN_STATE_*
Nick Mathewson [Thu, 24 Apr 2025 18:20:02 +0000 (14:20 -0400)] 
Renumber OR_CONN_STATE_*

3 months agoRename "RENEGOTIATING state.
Nick Mathewson [Thu, 24 Apr 2025 18:19:31 +0000 (14:19 -0400)] 
Rename "RENEGOTIATING state.

3 months agoCompletely remove support for the v2 link handshake
Nick Mathewson [Thu, 24 Apr 2025 18:06:12 +0000 (14:06 -0400)] 
Completely remove support for the v2 link handshake

The v2 link handshake was one of the silliest things we ever did:
in an attempt to avoid sending our funny-looking certs back and forth,
we would first negotiate with a dummy set of certs and ciphers,
and then renegotiate with the ciphersuites we _really_ wanted.

We removed client-side support for this handshake back in
0.2.8.1-alpha, with ticket 11150.

3 months agoRemove server support for the v1 link handshake.
Nick Mathewson [Thu, 24 Apr 2025 17:18:32 +0000 (13:18 -0400)] 
Remove server support for the v1 link handshake.

In the v1 handshake we would send two very specialized certificates.
We'd identify that the client wanted to use this handshake by
the ciphers that it sent, or didn't sent.

We already removed client-side support for the v1 link handshake
back in 0.2.8.1-alpha, with ticket 11150.

3 months agoMerge branch 'man-safelogging' into 'main'
David Goulet [Thu, 24 Apr 2025 13:22:48 +0000 (13:22 +0000)] 
Merge branch 'man-safelogging' into 'main'

remove tiny ambiguity in man page for SafeLogging

See merge request tpo/core/tor!882

3 months agoremove tiny ambiguity in man page for SafeLogging
Roger Dingledine [Wed, 23 Apr 2025 19:49:55 +0000 (15:49 -0400)] 
remove tiny ambiguity in man page for SafeLogging

3 months agoMerge branch 'maint-0.4.8'
David Goulet [Wed, 23 Apr 2025 18:35:27 +0000 (14:35 -0400)] 
Merge branch 'maint-0.4.8'

3 months agoPromote "list of supported groups" message to notice.
Nick Mathewson [Wed, 23 Apr 2025 18:11:39 +0000 (14:11 -0400)] 
Promote "list of supported groups" message to notice.

I have a feeling that this might help diagnosing
any other problems similar to #41058.

3 months agoOnly try more complex OpenSSL group list syntax with OpenSSL 3.5.
Nick Mathewson [Wed, 23 Apr 2025 18:10:43 +0000 (14:10 -0400)] 
Only try more complex OpenSSL group list syntax with OpenSSL 3.5.

Closes #41058.

3 months agotypo: Fix unfinished HTML tag in comment
David Goulet [Wed, 23 Apr 2025 17:54:03 +0000 (13:54 -0400)] 
typo: Fix unfinished HTML tag in comment

Signed-off-by: David Goulet <dgoulet@torproject.org>
3 months agoMerge branch 'maint-0.4.8'
David Goulet [Wed, 23 Apr 2025 15:00:53 +0000 (11:00 -0400)] 
Merge branch 'maint-0.4.8'

3 months agoTLS: When possible, enable ML-KEM768.
Nick Mathewson [Wed, 23 Apr 2025 13:13:04 +0000 (09:13 -0400)] 
TLS: When possible, enable ML-KEM768.

Closes ticket 41041.

3 months agoCorrectly detect error from SSL_CTX_set1_groups_list.
Nick Mathewson [Wed, 23 Apr 2025 12:46:17 +0000 (08:46 -0400)] 
Correctly detect error from SSL_CTX_set1_groups_list.

Previously our code was checking for '< 0', but the error return value for
this function _is_ zero.

3 months agoRemove TOR_TLS_USE_ECDHE_P* flags.
Nick Mathewson [Wed, 23 Apr 2025 12:38:05 +0000 (08:38 -0400)] 
Remove TOR_TLS_USE_ECDHE_P* flags.

They have been unused since 0.3.1.1-alpha, when we removed the
TLSECGroups option.

3 months agoMake two 1-bit fields unsigned
Sebastian Hahn [Thu, 1 Feb 2024 18:45:04 +0000 (19:45 +0100)] 
Make two 1-bit fields unsigned

This should be a completely harmless warning as we only check whether
the fields are true or false.

Closes #40911.

(Backported by nickm so that I can compile 0.4.8 without warnings.)

3 months agoci: Remove 047 from CI builds and put in 049
David Goulet [Wed, 16 Apr 2025 14:49:35 +0000 (10:49 -0400)] 
ci: Remove 047 from CI builds and put in 049

Signed-off-by: David Goulet <dgoulet@torproject.org>