Re: Move OpenSSL random under USE_OPENSSL_RANDOM
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Magnus Hagander <magnus@hagander.net>, Daniel Gustafsson <daniel@yesql.se>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-11-16T00:20:16Z
Lists: pgsql-hackers
Attachments
- win32-openssl.patch (text/x-diff) patch
On Sun, Nov 15, 2020 at 12:16:56PM -0500, Tom Lane wrote: > The obvious problem with this is that if !USE_OPENSSL, we will not have > pulled in openssl's headers. FWIW, I argued upthread against including this part because it is useless: if not building with OpenSSL, we'll never have the base to be able to use RAND_poll(). > However ... all these machines are pointing at line 96, which is not > that one but the one under "#if defined(USE_OPENSSL)". So I'm not sure > what to make of that, except that a bit more finesse seems required. The build scripts of src/tools/msvc/ choose to not use OpenSSL as strong random source even if building with OpenSSL. The top of the file only includes openssl/rand.h if using USE_OPENSSL_RANDOM. Thinking about that afresh, I think that we got that wrong here on three points: - If attempting to use OpenSSL on Windows, let's just bite the bullet and use OpenSSL as random source, using Windows as source only when not building with OpenSSL. - Instead of using a call to RAND_poll() that we know will never work, let's just issue a compilation failure if attempting to use USE_OPENSSL_RANDOM without USE_OPENSSL. - rand.h needs to be included under USE_OPENSSL. -- Michael
Commits
-
Remove ability to independently select random number generator
- 16f96c74d48e 14.0 landed
-
Add pg_strong_random_init function to initialize random number generator
- 5ee180a39470 14.0 landed