Re: OpenSSL 3.0.0 compatibility
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: Michael Paquier <michael@paquier.xyz>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-09-18T14:11:13Z
Lists: pgsql-hackers
Attachments
- 0002-Fix-ssl-tests-to-support-OpenSSL-3.0.0.patch (application/octet-stream) patch 0002
- 0001-Fix-pgcrypto-to-support-OpenSSL-3.0.0.patch (application/octet-stream) patch 0001
- (unnamed) (text/plain)
> On 17 Aug 2020, at 06:12, Michael Paquier <michael@paquier.xyz> wrote: > Leaving the problems with pgcrypto aside for now Returning to this subject, I decided to take a stab at fixing pgcrypto since it wasn't working. Since we support ciphers that are now deprecated, we have no other choice than to load the legacy provider. The other problem was that the cipher context padding must be explicitly set, whereas in previous versions relying on the default worked fine. EVP_CIPHER_CTX_set_padding always returns 1 so thats why it isn't checking the returnvalue as the other nearby initialization calls. To avoid problems with the by LibreSSL overloaded OPENSSL_VERSION_NUMBER macro (which too is deprecated in 3.0.0), I used the new macro which is only set in 3.0.0. Not sure if that's considered acceptable or if we should invent our own version macro in autoconf. For the main SSL tests, the incorrect password test has a new errormessage which is added in 0002. With these two all SSL tests pass for me in 1.0.1 through 3.0.0-alpha6 (tested on a mix of Debian and macOS). Thoughts on these? cheers ./daniel
Commits
-
Define OPENSSL_API_COMPAT
- 96f96398d398 11.21 landed
- 265c9138da58 12.16 landed
- 8aa9a26236aa 13.12 landed
- 4d3db13621be 14.0 landed
-
Add alternative output for OpenSSL 3 without legacy loaded
- eb643536b9f1 10.19 landed
- 8e7199453bf9 13.5 landed
- 7b6ce36fbab5 12.9 landed
- 6d0001aabf2a 14.0 landed
- 19e91a40bf26 11.14 landed
- 72bbff4cd6ea 15.0 landed
-
Disable OpenSSL EVP digest padding in pgcrypto
- e802b594e794 10.19 landed
- 4fa2b15e1c9c 14.0 landed
- 135d8687adf1 13.5 landed
- 11901cd9628b 11.14 landed
- 00c72da4a22d 12.9 landed
- 318df8023559 15.0 landed
-
pgcrypto: Check for error return of px_cipher_decrypt()
- a69e1506f618 13.5 landed
- 90cfd269f226 12.9 landed
- 841075a65cdc 10.19 landed
- 0f28d267c7e0 11.14 landed
- 22e1943f13b6 14.0 landed
-
OpenSSL 3.0.0 compatibility in tests
- f0d2c65f17ca 13.0 landed
-
Make ssl certificate for ssl_passphrase_callback test via Makefile
- b846091fd0a7 13.0 landed
-
Provide a TLS init hook
- 896fcdb230e7 13.0 cited