Hi everyone,

I finally got motivated to move away from crypt passwords since on my system 
that limits the passwords to 8 characters.  What I settled on was SHA, since it 
seems to be supported everywhere I need it.  Unfortunately, I can't get it to 
work anywhere and I can't tell why.

I store my account data in MySQL.  I changed the contents of my encrypted 
password field (that was working 100% with crypt passwords) to look like this:

{SHA}9afab6adfc0ec3d458fa314ddfd9b764e963144f

To do that, I used MySQL's SHA (or SHA1) function in an update query like this: 
.... CONCAT('{SHA}', SHA('password')) ....

AFAIK, Courier authlib takes it from there, using the fact that it starts with 
"{SHA}" to know what to do with it.  Unfortunately, it does not seem to think 
the passwords match up (to test, I just logged in to IMAP from the command line 
and issued a login request):

Oct 29 01:43:44 mail imapd: Connection, ip=[::ffff:127.0.0.1]
Oct 29 01:43:44 mail authdaemond: received auth request, service=imap, 
authtype=login
Oct 29 01:43:44 mail authdaemond: authmysql: trying this module
Oct 29 01:43:44 mail authdaemond: authmysqllib: connected. Versions: header 
50045, client 50045, server 50045
Oct 29 01:43:44 mail authdaemond: SQL query: SELECT email, password, '', uid, 
gid, home, maildir, quota, realname, '' FROM accounts WHERE email = 
CONCAT('user', '@', 'example.org') AND enabled = 1
Oct 29 01:43:44 mail authdaemond: supplied password 'password' does not match 
encrypted password '{SHA}9afab6adfc0ec3d458fa314ddfd9b764e963144f'
Oct 29 01:43:44 mail authdaemond: authmysql: REJECT - try next module
Oct 29 01:43:44 mail authdaemond: authpipe: trying this module
Oct 29 01:43:44 mail authdaemond: authpipe: REJECT - try next module
Oct 29 01:43:44 mail authdaemond: FAIL, all modules rejected
Oct 29 01:43:44 mail imapd: LOGIN FAILED, [EMAIL PROTECTED], 
ip=[::ffff:127.0.0.1]
Oct 29 01:43:49 mail imapd: Disconnected, ip=[::ffff:127.0.0.1], time=5

For laughs, I tried it without the leading "{SHA}", but no dice.  It feels 
almost like the MySQL SHA function didn't create the right hash, but I tested 
with PHP's sha1() function and it gives me the same hash code.  Again, this all 
works great if I remove the "{SHA}" and go back to using MySQL ENCTYPT() 
function (which uses my system's crypt()).

I was thinking MySQL was the problem, because I also have the exact same 
rejection from pam-mysql, which I use for SASL auth.  I changed it to use 
crypt=4 in my /etc/pam.d/smtp file, and no matter what I try for the password 
field, it won't work.  So I must be doing something wrong.

If anyone successfully uses SHA with Courier *OR* Pam-mysql, can you give me a 
hint for what I am doing wrong?  I can't for the life of me tell....

TIA!!!


      

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Courier-imap mailing list
Courier-imap@lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-imap

Reply via email to