When compiling 2.0.x against OpenSSL 3.0.x I guess a busload of warnings from clang that the code used is deprecated: ============= src/ssl.c:197:14: warning: 'DH_new' is deprecated [-Wdeprecated-declarations] DH *dh = DH_new(); ^ /usr/local/include/openssl/dh.h:199:1: note: 'DH_new' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 DH *DH_new(void); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:208:22: warning: 'DH_set0_pqg' is deprecated [-Wdeprecated-declarations] if (!p || !g || !DH_set0_pqg(dh, p, NULL, g)) { ^ /usr/local/include/openssl/dh.h:255:1: note: 'DH_set0_pqg' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:209:9: warning: 'DH_free' is deprecated [-Wdeprecated-declarations] DH_free(dh); ^ /usr/local/include/openssl/dh.h:200:1: note: 'DH_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:247:9: warning: 'DH_free' is deprecated [-Wdeprecated-declarations] DH_free(dhparams[n].dh); ^ /usr/local/include/openssl/dh.h:200:1: note: 'DH_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:309:9: warning: 'ENGINE_free' is deprecated [-Wdeprecated-declarations] ENGINE_free(tcn_ssl_engine); ^ /usr/local/include/openssl/engine.h:493:1: note: 'ENGINE_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 int ENGINE_free(ENGINE *e); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:337:17: warning: 'ENGINE_by_id' is deprecated [-Wdeprecated-declarations] ENGINE *e = ENGINE_by_id("dynamic"); ^ /usr/local/include/openssl/engine.h:336:1: note: 'ENGINE_by_id' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_by_id(const char *id); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:339:14: warning: 'ENGINE_ctrl_cmd_string' is deprecated [-Wdeprecated-declarations] if (!ENGINE_ctrl_cmd_string(e, "SO_PATH", engine, 0) ^ /usr/local/include/openssl/engine.h:478:1: note: 'ENGINE_ctrl_cmd_string' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:340:17: warning: 'ENGINE_ctrl_cmd_string' is deprecated [-Wdeprecated-declarations] || !ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0)) { ^ /usr/local/include/openssl/engine.h:478:1: note: 'ENGINE_ctrl_cmd_string' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:341:13: warning: 'ENGINE_free' is deprecated [-Wdeprecated-declarations] ENGINE_free(e); ^ /usr/local/include/openssl/engine.h:493:1: note: 'ENGINE_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 int ENGINE_free(ENGINE *e); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:525:13: warning: 'ENGINE_register_all_complete' is deprecated [-Wdeprecated-declarations] ENGINE_register_all_complete(); ^ /usr/local/include/openssl/engine.h:415:1: note: 'ENGINE_register_all_complete' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 int ENGINE_register_all_complete(void); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:528:23: warning: 'ENGINE_by_id' is deprecated [-Wdeprecated-declarations] if ((ee = ENGINE_by_id(J2S(engine))) == NULL ^ /usr/local/include/openssl/engine.h:336:1: note: 'ENGINE_by_id' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_by_id(const char *id); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:534:21: warning: 'ENGINE_ctrl' is deprecated [-Wdeprecated-declarations] ENGINE_ctrl(ee, ENGINE_CTRL_CHIL_SET_FORKCHECK, 1, 0, 0); ^ /usr/local/include/openssl/engine.h:429:1: note: 'ENGINE_ctrl' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/ssl.c:536:22: warning: 'ENGINE_set_default' is deprecated [-Wdeprecated-declarations] if (!ENGINE_set_default(ee, ENGINE_METHOD_ALL)) ^ /usr/local/include/openssl/engine.h:708:1: note: 'ENGINE_set_default' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 int ENGINE_set_default(ENGINE *e, unsigned int flags); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ 13 warnings generated. /bin/sh /usr/local/share/apr/build-1/libtool --silent --mode=compile cc -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong -fno-strict-aliasing -DHAVE_CONFIG_H -DLIBICONV_PLUG -g -O2 -DHAVE_POLLSET_WAKEUP -I./include -I/usr/local/openjdk8/include -I/usr/local/openjdk8/include/freebsd -I/usr/local/include -I/usr/local/include/apr-1 -o src/sslconf.lo -c src/sslconf.c && touch src/sslconf.lo /bin/sh /usr/local/share/apr/build-1/libtool --silent --mode=compile cc -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong -fno-strict-aliasing -DHAVE_CONFIG_H -DLIBICONV_PLUG -g -O2 -DHAVE_POLLSET_WAKEUP -I./include -I/usr/local/openjdk8/include -I/usr/local/openjdk8/include/freebsd -I/usr/local/include -I/usr/local/include/apr-1 -o src/sslcontext.lo -c src/sslcontext.c && touch src/sslcontext.lo src/sslcontext.c:757:10: warning: 'PEM_read_bio_DHparams' is deprecated [-Wdeprecated-declarations] dh = PEM_read_bio_DHparams(bio, NULL, NULL, NULL); ^ /usr/local/include/openssl/pem.h:469:21: note: 'PEM_read_bio_DHparams' has been explicitly marked deprecated here DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH) ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:769:9: warning: 'DH_free' is deprecated [-Wdeprecated-declarations] DH_free(dh); ^ /usr/local/include/openssl/dh.h:200:1: note: 'DH_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:776:5: warning: 'DH_free' is deprecated [-Wdeprecated-declarations] DH_free(dh); ^ /usr/local/include/openssl/dh.h:200:1: note: 'DH_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:800:12: warning: 'EC_KEY_new_by_curve_name' is deprecated [-Wdeprecated-declarations] ecdh = EC_KEY_new_by_curve_name(i); ^ /usr/local/include/openssl/ec.h:998:1: note: 'EC_KEY_new_by_curve_name' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:810:9: warning: 'EC_KEY_free' is deprecated [-Wdeprecated-declarations] EC_KEY_free(ecdh); ^ /usr/local/include/openssl/ec.h:1003:1: note: 'EC_KEY_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:816:5: warning: 'EC_KEY_free' is deprecated [-Wdeprecated-declarations] EC_KEY_free(ecdh); ^ /usr/local/include/openssl/ec.h:1003:1: note: 'EC_KEY_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:1041:33: warning: 'ENGINE_load_private_key' is deprecated [-Wdeprecated-declarations] (c->keys[idx] = ENGINE_load_private_key(tcn_ssl_engine, key_file, ^ /usr/local/include/openssl/engine.h:637:1: note: 'ENGINE_load_private_key' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:1086:9: warning: 'DH_free' is deprecated [-Wdeprecated-declarations] DH_free(dhparams); ^ /usr/local/include/openssl/dh.h:200:1: note: 'DH_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:1097:18: warning: 'EC_KEY_new_by_curve_name' is deprecated [-Wdeprecated-declarations] (eckey = EC_KEY_new_by_curve_name(nid))) { ^ /usr/local/include/openssl/ec.h:998:1: note: 'EC_KEY_new_by_curve_name' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:1102:5: warning: 'EC_KEY_free' is deprecated [-Wdeprecated-declarations] EC_KEY_free(eckey); ^ /usr/local/include/openssl/ec.h:1003:1: note: 'EC_KEY_free' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key); ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:1105:5: warning: 'SSL_CTX_set_tmp_dh_callback' is deprecated [-Wdeprecated-declarations] SSL_CTX_set_tmp_dh_callback(c->ctx, SSL_callback_tmp_DH); ^ /usr/local/include/openssl/ssl.h:2226:1: note: 'SSL_CTX_set_tmp_dh_callback' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslcontext.c:1214:5: warning: 'SSL_CTX_set_tmp_dh_callback' is deprecated [-Wdeprecated-declarations] SSL_CTX_set_tmp_dh_callback(c->ctx, SSL_callback_tmp_DH); ^ /usr/local/include/openssl/ssl.h:2226:1: note: 'SSL_CTX_set_tmp_dh_callback' has been explicitly marked deprecated here OSSL_DEPRECATEDIN_3_0 ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ 12 warnings generated. /bin/sh /usr/local/share/apr/build-1/libtool --silent --mode=compile cc -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong -fno-strict-aliasing -DHAVE_CONFIG_H -DLIBICONV_PLUG -g -O2 -DHAVE_POLLSET_WAKEUP -I./include -I/usr/local/openjdk8/include -I/usr/local/openjdk8/include/freebsd -I/usr/local/include -I/usr/local/include/apr-1 -o src/sslutils.lo -c src/sslutils.c && touch src/sslutils.lo src/sslutils.c:191:10: warning: 'PEM_read_bio_DHparams' is deprecated [-Wdeprecated-declarations] dh = PEM_read_bio_DHparams(bio, NULL, NULL, NULL); ^ /usr/local/include/openssl/pem.h:469:21: note: 'PEM_read_bio_DHparams' has been explicitly marked deprecated here DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, DHparams, DH) ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ src/sslutils.c:204:13: warning: 'PEM_read_bio_ECPKParameters' is deprecated [-Wdeprecated-declarations] group = PEM_read_bio_ECPKParameters(bio, NULL, NULL, NULL); ^ /usr/local/include/openssl/pem.h:461:21: note: 'PEM_read_bio_ECPKParameters' has been explicitly marked deprecated here DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, ECPKParameters, EC_GROUP) ^ /usr/local/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) ^ /usr/local/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' # define OSSL_DEPRECATED(since) __attribute__((deprecated)) ^ 2 warnings generated. =========== In some point in time we should go through all of these and replace with new code.
Ouch. I had a look and to be honest I don't know how to rewrite this DH stuff (including, but not limited to, the callback which is not documented as having a replacement). I'm pretty sure some stuff breaks without that feature (= testsuite fails). It's good that it's not removed yet (including in 3.2 dev) !
(In reply to Remy Maucherat from comment #1) > Ouch. I had a look and to be honest I don't know how to rewrite this DH > stuff (including, but not limited to, the callback which is not documented > as having a replacement). I'm pretty sure some stuff breaks without that > feature (= testsuite fails). It's good that it's not removed yet (including > in 3.2 dev) ! I would assume that all code which is deprecated is still used?