pgsql: Support OpenSSL 1.1.0. - Mailing list pgsql-committers
From | Heikki Linnakangas |
---|---|
Subject | pgsql: Support OpenSSL 1.1.0. |
Date | |
Msg-id | E1bkVG3-0000LB-Lx@gemulon.postgresql.org Whole thread Raw |
List | pgsql-committers |
Support OpenSSL 1.1.0. Changes needed to build at all: - Check for SSL_new in configure, now that SSL_library_init is a macro. - Do not access struct members directly. This includes some new code in pgcrypto, to use the resource owner mechanism to ensure that we don't leak OpenSSL handles, now that we can't embed them in other structs anymore. - RAND_SSLeay() -> RAND_OpenSSL() Changes that were needed to silence deprecation warnings, but were not strictly necessary: - RAND_pseudo_bytes() -> RAND_bytes(). - SSL_library_init() and OpenSSL_config() -> OPENSSL_init_ssl() - ASN1_STRING_data() -> ASN1_STRING_get0_data() - DH_generate_parameters() -> DH_generate_parameters() - Locking callbacks are not needed with OpenSSL 1.1.0 anymore. (Good riddance!) Also change references to SSLEAY_VERSION_NUMBER with OPENSSL_VERSION_NUMBER, for the sake of consistency. OPENSSL_VERSION_NUMBER has existed since time immemorial. Fix SSL test suite to work with OpenSSL 1.1.0. CA certificates must have the "CA:true" basic constraint extension now, or OpenSSL will refuse them. Regenerate the test certificates with that. The "openssl" binary, used to generate the certificates, is also now more picky, and throws an error if an X509 extension is specified in "req_extensions", but that section is empty. Backpatch to 9.5 and 9.6, per popular demand. The file structure was somewhat different in earlier branches, so I didn't bother to go further than that. In back-branches, we still support OpenSSL 0.9.7 and above. OpenSSL 0.9.6 should still work too, but I didn't test it. In master, we only support 0.9.8 and above. Patch by Andreas Karlsson, with additional changes by me. Discussion: <20160627151604.GD1051@msg.df7cb.de> Branch ------ REL9_5_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/e2838c58047a98e91cb6f329b17bb86f343c03d2 Modified Files -------------- configure | 44 ++++----- configure.in | 4 +- contrib/pgcrypto/internal.c | 9 -- contrib/pgcrypto/openssl.c | 130 +++++++++++++++++++------ contrib/pgcrypto/pgcrypto.c | 2 +- contrib/pgcrypto/pgp-s2k.c | 6 +- contrib/pgcrypto/px-crypt.c | 2 +- contrib/pgcrypto/px.h | 1 - src/backend/libpq/be-secure-openssl.c | 101 +++++++++++++++---- src/interfaces/libpq/fe-secure-openssl.c | 98 ++++++++++++++----- src/interfaces/libpq/libpq-int.h | 2 +- src/test/ssl/Makefile | 5 +- src/test/ssl/cas.config | 7 +- src/test/ssl/root_ca.config | 4 + src/test/ssl/server-cn-only.config | 1 - src/test/ssl/server-no-names.config | 1 - src/test/ssl/server-revoked.config | 1 - src/test/ssl/ssl/both-cas-1.crt | 67 ++++++------- src/test/ssl/ssl/both-cas-2.crt | 67 ++++++------- src/test/ssl/ssl/client-revoked.crt | 16 +-- src/test/ssl/ssl/client-revoked.key | 26 ++--- src/test/ssl/ssl/client.crl | 12 +-- src/test/ssl/ssl/client.crt | 16 +-- src/test/ssl/ssl/client.key | 26 ++--- src/test/ssl/ssl/client_ca.crt | 22 ++--- src/test/ssl/ssl/client_ca.key | 26 ++--- src/test/ssl/ssl/root+client.crl | 22 ++--- src/test/ssl/ssl/root+client_ca.crt | 45 ++++----- src/test/ssl/ssl/root+server.crl | 22 ++--- src/test/ssl/ssl/root+server_ca.crt | 45 ++++----- src/test/ssl/ssl/root.crl | 10 +- src/test/ssl/ssl/root_ca.crt | 23 ++--- src/test/ssl/ssl/root_ca.key | 26 ++--- src/test/ssl/ssl/server-cn-and-alt-names.crt | 18 ++-- src/test/ssl/ssl/server-cn-and-alt-names.key | 26 ++--- src/test/ssl/ssl/server-cn-only.crt | 16 +-- src/test/ssl/ssl/server-cn-only.key | 26 ++--- src/test/ssl/ssl/server-multiple-alt-names.crt | 16 +-- src/test/ssl/ssl/server-multiple-alt-names.key | 26 ++--- src/test/ssl/ssl/server-no-names.crt | 14 +-- src/test/ssl/ssl/server-no-names.key | 26 ++--- src/test/ssl/ssl/server-revoked.crt | 16 +-- src/test/ssl/ssl/server-revoked.key | 26 ++--- src/test/ssl/ssl/server-single-alt-name.crt | 14 +-- src/test/ssl/ssl/server-single-alt-name.key | 26 ++--- src/test/ssl/ssl/server-ss.crt | 16 +-- src/test/ssl/ssl/server-ss.key | 26 ++--- src/test/ssl/ssl/server.crl | 12 +-- src/test/ssl/ssl/server_ca.crt | 22 ++--- src/test/ssl/ssl/server_ca.key | 26 ++--- 50 files changed, 714 insertions(+), 527 deletions(-)
pgsql-committers by date: