• Heikki Linnakangas's avatar
    Replace PostmasterRandom() with a stronger way of generating randomness. · 9e083fd4
    Heikki Linnakangas authored
    This adds a new routine, pg_strong_random() for generating random bytes,
    for use in both frontend and backend. At the moment, it's only used in
    the backend, but the upcoming SCRAM authentication patches need strong
    random numbers in libpq as well.
    
    pg_strong_random() is based on, and replaces, the existing implementation
    in pgcrypto. It can acquire strong random numbers from a number of sources,
    depending on what's available:
    - OpenSSL RAND_bytes(), if built with OpenSSL
    - On Windows, the native cryptographic functions are used
    - /dev/urandom
    - /dev/random
    
    Original patch by Magnus Hagander, with further work by Michael Paquier
    and me.
    
    Discussion: <CAB7nPqRy3krN8quR9XujMVVHYtXJ0_60nqgVc6oUk8ygyVkZsA@mail.gmail.com>
    9e083fd4
pg_strong_random.c 2.97 KB