Re: Move OpenSSL random under USE_OPENSSL_RANDOM

Daniel Gustafsson <daniel@yesql.se>

From: Daniel Gustafsson <daniel@yesql.se>
To: Michael Paquier <michael@paquier.xyz>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Magnus Hagander <magnus@hagander.net>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-11-18T09:43:35Z
Lists: pgsql-hackers
> On 18 Nov 2020, at 09:54, Michael Paquier <michael@paquier.xyz> wrote:
> 
> On Wed, Nov 18, 2020 at 09:25:44AM +0100, Daniel Gustafsson wrote:
>> Technically that is what it does, except for setting the USE_*RANDOM variables
>> for non-OpenSSL builds.  We could skip that too, which I think is what you're
>> proposing, but it seems to me that we'll end up with another set of entangled
>> logic in pg_strong_random if we do since there then needs to be precedence in
>> checking (one might be on Windows with OpenSSL for example, where OpenSSL >
>> Windows API).
> 
> Yes, I am suggesting to just remove both USE_*_RANDOM flags, and use
> the following structure instead in pg_strong_random.c for both the
> init and main functions:
> #ifdef USE_OPENSSL
> 	/* foo */
> #elif WIN32
> 	/* bar*/
> #else
> 	/* hoge urandom */
> #endif
> 
> And complain in configure.ac if we miss urandom for the fallback case.
> 
> Now, it would not be the first time I suggest something on this thread
> that nobody likes :)

While it does simplify configure.ac, I'm just not a fan of the strict ordering
which is required without the labels even implying it.  But that might just be
my personal preference.

cheers ./daniel


Commits

  1. Remove ability to independently select random number generator

  2. Add pg_strong_random_init function to initialize random number generator