PQconnectdbParams and encrypted password

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

PQconnectdbParams and encrypted password

Dmitry Markman
Hi
I need some help with setting PQconnectdbParams key/value for encrypted password

suppose I created user with the string

create user foobar with encrypted password ‘md5f3c33545d22dbf811737afb8d0e85597’

I was able to connect successfully using

psql -U foobar

I guess my pg_hba.conf is OK:

local   all             foobar                                    md5
host    all             foobar              127.0.0.1/32          md5
host    all             foobar              0.0.0.0/0             md5

however

I have a problem to connect to the server from my C++ program using PQconnectdbParams function

            const std::pair<std::string, std::string> connParams[] = {
                {"host", “localhost"},
                {"port", ""},
                {"user", “foobar"},
                {"password", ??????????????},//I’d like to have here “md5f3c33545d22dbf811737afb8d0e85597”, but it doesn’t work
                {"options","password_encryption='md5'"},
                {"dbname", "test_db"},
                {"connect_timeout", “10"}
            };
            const char* keywords[] = {connParams[0].first.c_str(),
                                      connParams[1].first.c_str(),
                                      connParams[2].first.c_str(),
                                      connParams[3].first.c_str(),
                                      connParams[4].first.c_str(),
                                      connParams[5].first.c_str(),
                                      connParams[6].first.c_str(),
                                      nullptr};
            const char* connValues[] = {connParams[0].second.c_str(),
                                        connParams[1].second.c_str(),
                                        connParams[2].second.c_str(),
                                        connParams[3].second.c_str(),
                                        connParams[4].second.c_str(),
                                        connParams[5].second.c_str(),
                                        connParams[6].second.c_str(),
                                        nullptr};

                auto db = PQconnectdbParams(keywords, connValues)


whatever I tried ConnStatusType of the db is CONNECTION_BAD

if I use value as “open” string for the key=“password”, then connection was successful


thanks in advance

dm








Reply | Threaded
Open this post in threaded view
|

Re: PQconnectdbParams and encrypted password

Tom Lane-2
Dmitry Markman <[hidden email]> writes:
> I need some help with setting PQconnectdbParams key/value for encrypted password
> suppose I created user with the string
> create user foobar with encrypted password ‘md5f3c33545d22dbf811737afb8d0e85597’
> ...
>                 {"password", ??????????????},//I’d like to have here “md5f3c33545d22dbf811737afb8d0e85597”, but it doesn’t work

Pretty much the entire *point* of an encrypted password is that the
md5 hash is not sufficient to log in with.  You need the original
string.

                        regards, tom lane


Reply | Threaded
Open this post in threaded view
|

Re: PQconnectdbParams and encrypted password

Dmitry Markman
Hi Tom

thanks a lot for your answer

I realized it almost immediately after I press the button send :)

thanks again

 dm


> On Aug 30, 2019, at 9:50 AM, Tom Lane <[hidden email]> wrote:
>
> Dmitry Markman <[hidden email]> writes:
>> I need some help with setting PQconnectdbParams key/value for encrypted password
>> suppose I created user with the string
>> create user foobar with encrypted password ‘md5f3c33545d22dbf811737afb8d0e85597’
>> ...
>>                {"password", ??????????????},//I’d like to have here “md5f3c33545d22dbf811737afb8d0e85597”, but it doesn’t work
>
> Pretty much the entire *point* of an encrypted password is that the
> md5 hash is not sufficient to log in with.  You need the original
> string.
>
> regards, tom lane