1 diff -ur courier-authlib-0.56.orig/checkpasswordmd5.c courier-authlib-0.56/checkpasswordmd5.c
2 --- courier-authlib-0.56.orig/checkpasswordmd5.c 2004-10-21 02:10:49.000000000 +0200
3 +++ courier-authlib-0.56/checkpasswordmd5.c 2005-08-09 12:27:03.000000000 +0200
6 if (strncasecmp(encrypted_password, "{MD5}", 5) == 0)
8 - return (strcmp(encrypted_password+5, md5_hash_courier(password)));
9 + int a = strcmp(encrypted_password+5, md5_hash_courier(password));
11 + return (strcasecmp(encrypted_password+5, md5_hash_hex(password)));
17 --- courier-authlib-0.68.0.orig/libs/md5/md5.h 2002-12-12 05:23:58.000000000 +0100
18 +++ courier-authlib-0.68.0/md5/libs/md5.h 2005-08-09 12:26:27.000000000 +0200
21 const char *md5_hash_courier(const char *);
22 const char *md5_hash_raw(const char *);
23 +const char *md5_hash_hex(const char *);
27 --- courier-authlib-0.68.0.orig/libs/md5/md5_hash.c 2002-12-12 05:23:58.000000000 +0100
28 +++ courier-authlib-0.68.0/libs/md5/md5_hash.c 2005-08-09 12:24:05.000000000 +0200
30 static const char base64tab[]=
31 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
33 +static const char hextab[] = "0123456789abcdef";
35 const char *md5_hash_courier(const char *passw)
43 +const char *md5_hash_hex(const char *passw) {
45 + static char hash_buffer[2*sizeof(md5buf)+1];
48 + md5_digest(passw, strlen(passw), md5buf);
50 + for (i=0; i<sizeof(md5buf); i++) {
51 + hash_buffer[j++] = hextab[(md5buf[i] & 0xF0) >> 4];
52 + hash_buffer[j++] = hextab[md5buf[i] & 0x0F];
56 + return (hash_buffer);