Re: Support for NSS as a libpq TLS backend

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Daniel Gustafsson <daniel@yesql.se>
Cc: Jacob Champion <pchampion@vmware.com>, "hlinnaka@iki.fi" <hlinnaka@iki.fi>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>, "andrew.dunstan@2ndquadrant.com" <andrew.dunstan@2ndquadrant.com>, "thomas.munro@gmail.com" <thomas.munro@gmail.com>, "andres@anarazel.de" <andres@anarazel.de>, "sfrost@snowman.net" <sfrost@snowman.net>
Date: 2021-02-09T06:47:42Z
Lists: pgsql-hackers
On Tue, Feb 09, 2021 at 12:08:37AM +0100, Daniel Gustafsson wrote:
> Attached is a new patchset where I've tried to split the patches even further
> to try and separate out changes for easier review.  While not a perfect split
> I'm sure, and clearly only for review purposes, I do hope it helps a little.
> There is one hunk in 0002 which moves some OpenSSL specific code from
> underneath USE_SSL, but thats about the only non-NSS change left in this
> patchset AFAICS.

I would have imagined 0010 to be either a 0001 or a 0002 :)

 }
+#endif                         /* USE_SSL */
+
+#ifndef USE_OPENSSL

PQsslKeyPassHook_OpenSSL_type
PQgetSSLKeyPassHook_OpenSSL(void)
Indeed.  Let's fix that on HEAD, as an independent thing.

     errmsg("hostssl record cannot match because SSL is not supported by this build"),
-    errhint("Compile with --with-ssl=openssl to use SSL connections."),
+    errhint("Compile with --with-ssl to use SSL connections."),
Actually, we could change that directly on HEAD as you suggest.  This
code area is surrounded with USE_SSL so there is no need to mention
openssl at all.

-/* Support for overriding sslpassword handling with a callback. */
+/* Support for overriding sslpassword handling with a callback */
Makes sense.

 /*
  * USE_SSL code should be compiled only when compiling with an SSL
- * implementation.  (Currently, only OpenSSL is supported, but we might add
- * more implementations in the future.)
+ * implementation.
  */
Fine by me as well, meaning that 0002 could just be committed as-is.
I am also looking at 0003 a bit.
--
Michael

Commits

  1. Add tab-completion for CREATE FOREIGN TABLE.

  2. Add tap tests for the schema publications.

  3. Move Perl test modules to a better namespace

  4. Adjust configure to insist on Perl version >= 5.8.3.

  5. Simplify code related to compilation of SSL and OpenSSL

  6. Introduce --with-ssl={openssl} as a configure option

  7. Implement support for bulk inserts in postgres_fdw

  8. Fix redundant error messages in client tools

  9. doc: Apply more consistently <productname> markup for OpenSSL

  10. Check ssl_in_use flag when reporting statistics