From 5c603c4032bf71792e7accd80e2b7d0e78d445f8 Mon Sep 17 00:00:00 2001
From: defa <defa@so36.net>
Date: Tue, 28 Aug 2012 10:11:49 -0400
Subject: [PATCH] fixed the patch after some testing, works productive

---
 plugins/password/drivers/sql.php |   33 +++++++++++++++++++--------------
 1 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/plugins/password/drivers/sql.php b/plugins/password/drivers/sql.php
index ec04048..8bdcabf 100644
--- a/plugins/password/drivers/sql.php
+++ b/plugins/password/drivers/sql.php
@@ -41,29 +41,34 @@
         if (strpos($sql, '%c') !== FALSE) {
             $salt = '';
 
-            if (!($crypt_digest = $rcmail->config->get('password_crypt_digest')))
-                $crypt_digest = CRYPT_MD5;
-            
-            switch ($crypt_digest)
+            if (!($crypt_hash = $rcmail->config->get('password_crypt_hash')))
             {
-            case CRYPT_MD5:
+                if (CRYPT_MD5)
+                    $crypt_hash = 'md5';
+                else if (CRYPT_STD_DES)
+                    $crypt_hash = 'des';
+            }
+            
+            switch ($crypt_hash)
+            {
+            case 'md5':
                 $len = 8;
-                $salt_digest = '$1$';
+                $salt_hashindicator = '$1$';
                 break;
-            case CRYPT_STD_DES:
+            case 'des':
                 $len = 2;
                 break;
-            case CRYPT_BLOWFISH:
+            case 'blowfish':
                 $len = 22;
-                $salt_digest = '$2a$';
+                $salt_hashindicator = '$2a$';
                 break;
-            case CRYPT_SHA256:
+            case 'sha256':
                 $len = 16;
-                $salt_digest = '$5$';
+                $salt_hashindicator = '$5$';
                 break;
-            case CRYPT_SHA512:
+            case 'sha512':
                 $len = 16;
-                $salt_digest = '$6$';
+                $salt_hashindicator = '$6$';
                 break;
             default:
                 return PASSWORD_CRYPT_ERROR;
@@ -75,7 +80,7 @@
     	        $salt .= $seedchars[rand(0, 63)];
             }
 
-            $sql = str_replace('%c',  $db->quote(crypt($passwd, $salt_digest ? $salt_digest .$salt.'$' : $salt)), $sql);
+            $sql = str_replace('%c',  $db->quote(crypt($passwd, $salt_hashindicator ? $salt_hashindicator .$salt.'$' : $salt)), $sql);
         }
 
         // dovecotpw

--
Gitblit v1.9.1