Compatibility issues with recent OpenSSL 3.0.0 alphas
I see these errors when building with openssl-3.0.0-alpha17:
In file included from src/lib/tls/tortls_openssl.c:48:
src/lib/tls/tortls_openssl.c: In function ‘tor_tls_assert_renegotiation_unblocked’:
/opt/openssl-3.0.0-alpha17//include/openssl/ssl.h:342:26: error: "uint64_t" is not defined, evaluates to 0 [-Werror=undef]
342 | #define SSL_OP_BIT(n) ((uint64_t)1 << (uint64_t)n)
| ^~~~~~~~
/opt/openssl-3.0.0-alpha17//include/openssl/ssl.h:388:58: note: in expansion of macro ‘SSL_OP_BIT’
388 | # define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION SSL_OP_BIT(18)
| ^~~~~~~~~~
src/lib/tls/tortls_openssl.c:1176:3: note: in expansion of macro ‘SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION’
1176 | SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION != 0
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/openssl-3.0.0-alpha17//include/openssl/ssl.h:342:35: error: missing binary operator before token "1"
342 | #define SSL_OP_BIT(n) ((uint64_t)1 << (uint64_t)n)
| ^
/opt/openssl-3.0.0-alpha17//include/openssl/ssl.h:388:58: note: in expansion of macro ‘SSL_OP_BIT’
388 | # define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION SSL_OP_BIT(18)
| ^~~~~~~~~~
src/lib/tls/tortls_openssl.c:1176:3: note: in expansion of macro ‘SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION’
1176 | SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION != 0
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
It seems to me we should backport a fix here back to 0.4.5, and possibly as far as 0.3.5.
In any case, this is an oss-fuzz blocker.