Re: Password identifiers, protocol aging and SCRAM protocol
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: David Steele <david@pgmasters.net>, Robert Haas <robertmhaas@gmail.com>,
David Fetter <david@fetter.org>,
Alvaro Herrera <alvherre@2ndquadrant.com>,
Magnus Hagander <magnus@hagander.net>,
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
Heikki Linnakangas <hlinnaka@iki.fi>,
Julian Markwort <julian.markwort@uni-muenster.de>,
Stephen Frost <sfrost@snowman.net>,
PostgreSQL mailing lists <pgsql-hackers@postgresql.org>,
Valery Popov <v.popov@postgrespro.ru>
Date: 2016-07-22T00:02:28Z
Lists: pgsql-hackers
Michael Paquier <michael.paquier@gmail.com> writes: > On Fri, Jul 22, 2016 at 8:48 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> I'm confused. We need that code in both libpq and backend, no? >> src/common is the place for stuff of that description. > Not necessarily. src/interfaces/libpq/Makefile uses a set of files > like md5.c which is located in the backend code and directly compiles > libpq.so with them, so one possibility would be to do the same for > sha.c: locate the file in src/backend/libpq/ and then fetch the file > directly when compiling libpq's shared library. Meh. That seems like a hack left over from before we had src/common. Having said that, src/interfaces/libpq/ does have some special requirements, because it needs the code compiled with -fpic (on most hardware), which means it can't just use the client-side libpgcommon.a builds. So maybe it's not worth improving this. > One thing about my current set of patches is that I have begun adding > files from src/common/ to libpq's list of files. As that would be new > I am wondering if I should avoid doing so. Well, it could link source files from there just as easily as from the backend. Not object files, though. regards, tom lane
Commits
-
Support SCRAM-SHA-256 authentication (RFC 5802 and 7677).
- 818fd4a67d61 10.0 landed
-
Refactor SHA2 functions and move them to src/common/.
- 273c458a2b3a 10.0 landed
-
Replace isMD5() with a more future-proof way to check if pw is encrypted.
- dbd69118c05d 10.0 landed
-
Remove bogus notice that older clients might not work with MD5 passwords.
- 7e3ae5455948 9.2.20 landed
- 470af1f41c8b 9.3.16 landed
- ada2cdb61015 9.4.11 landed
- 65a7f190b253 9.5.6 landed
- 7546c135dc30 9.6.2 landed
- 31c54096a18f 10.0 landed
-
Refactor the code for verifying user's password.
- e7f051b8f9a6 10.0 landed
-
Replace PostmasterRandom() with a stronger source, second attempt.
- fe0a0b5993df 10.0 landed
-
Remove support for (insecure) crypt authentication.
- 53a5026b5cb3 8.4.0 cited