With OpenSSL 3.0, it's really up to the application to define OPENSSL_API_COMPAT, and when compiling tcpdump, OPENSSL_API_COMPAT is not defined, thus the check in esp_init() is incorrect:
#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < 0x10100000L
OpenSSL_add_all_algorithms();
#endif
|
OpenSSL_add_all_algorithms(); |
When compiled against OpenSSL 3.0.1 built with --api=1.1.1 and no-deprecated configuration options, OpenSSL_add_all_algorithms() is not defined, and build fail:
./print-esp.c: In function 'esp_init':
./print-esp.c:682:2: warning: implicit declaration of function 'OpenSSL_add_all_algorithms' [-Wimplicit-function-declaration]
OpenSSL_add_all_algorithms();
^
libnetdissect.a(print-esp.o): In function `esp_init':
.../print-esp.c:682: undefined reference to `OpenSSL_add_all_algorithms'
collect2: error: ld returned 1 exit status
With OpenSSL 3.0, it's really up to the application to define
OPENSSL_API_COMPAT, and when compiling tcpdump,OPENSSL_API_COMPATis not defined, thus the check inesp_init()is incorrect:tcpdump/print-esp.c
Line 683 in 9ff9f78
When compiled against OpenSSL 3.0.1 built with
--api=1.1.1andno-deprecatedconfiguration options,OpenSSL_add_all_algorithms()is not defined, and build fail: