This matches what a PostgreSQL server would do.
Author: @hashbrowncipher
fixes #129
switch (auth_type) {
case AUTH_PLAIN:
- return strcmp(user->passwd, passwd) == 0;
+ if (isMD5(user->passwd)) {
+ pg_md5_encrypt(passwd, user->name, strlen(user->name), md5);
+ return strcmp(user->passwd, md5) == 0;
+ } else
+ return strcmp(user->passwd, passwd) == 0;
case AUTH_MD5:
if (strlen(passwd) != MD5_PASSWD_LEN)
return false;
# bad password
PGPASSWORD=wrong psql -X -U puser2 -c "select 2" p1 && return 1
+ # test with users that have an md5 password stored
+
+ # good password
+ PGPASSWORD=foo psql -X -U muser1 -c "select 1" p1 || return 1
+ # bad password
+ PGPASSWORD=wrong psql -X -U muser2 -c "select 2" p1 && return 1
+
admin "set auth_type='trust'"
return 0