On Wed, Sep 28, 2016 at 8:55 PM, Michael Paquier <michael.paqu...@gmail.com> wrote: >> Our b64_encode routine does use whitespace, so we can't use it as is for >> SCRAM. As the patch stands, we might never output anything long enough to >> create linefeeds, but let's be tidy. The base64 implementation is about 100 >> lines of code, so perhaps we should just leave src/backend/utils/encode.c >> alone, and make a new copy of the base64 routines in src/common. > > OK, I'll refresh that tomorrow with the rest. Thanks for the commit to > extend password_encryption.
OK, so after more chatting with Heikki, here is a list of TODO items and a summary of the state of things: - base64 encoding routines should drop whitespace (' ', \r, \t), and it would be better to just copy those from the backend's encode.c to src/common/. No need to move escape and binary things, nor touch backend's base64 routines. - No need to move sha1.c to src/common/. Better to just get sha2.c into src/common/ as we aim at SCRAM-SHA-256. - random() called in the client is no good. We need something better here. - The error handling needs to be reworked and should follow the protocol presented by RFC5802, by sending back e= messages. This needs a bit of work, not much I think though as the infra is in place in the core patch. - Let's discard the md5-or-scram optional thing in pg_hba.conf. This complicates the error handling protocol. I am marking this patch as returned with feedback for current CF and will post a new set soon, moving it to the next CF once I have the new set of patches ready for posting. -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers