From c97d4afe1734cc43a77f18b86d67216ebe7e3147 Mon Sep 17 00:00:00 2001 From: Deon George Date: Fri, 29 Apr 2011 13:04:44 +1000 Subject: [PATCH] SF Feature #3108047 - Add support for smbk5pwd overlay K5KEY "encryption" type --- lib/functions.php | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/lib/functions.php b/lib/functions.php index 7993086..104448d 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -2087,6 +2087,7 @@ function password_types() { 'crypt'=>'crypt', 'ext_des'=>'ext_des', 'md5'=>'md5', + 'k5key'=>'k5key', 'md5crypt'=>'md5crypt', 'sha'=>'sha', 'smd5'=>'smd5', @@ -2109,6 +2110,15 @@ function password_hash($password_clear,$enc_type) { $enc_type = strtolower($enc_type); switch($enc_type) { + case 'blowfish': + if (! defined('CRYPT_BLOWFISH') || CRYPT_BLOWFISH == 0) + error(_('Your system crypt library does not support blowfish encryption.'),'error','index.php'); + + # Hardcoded to second blowfish version and set number of rounds + $new_value = sprintf('{CRYPT}%s',crypt($password_clear,'$2a$12$'.random_salt(13))); + + break; + case 'crypt': if ($_SESSION[APPCONFIG]->getValue('password', 'no_random_crypt_salt')) $new_value = sprintf('{CRYPT}%s',crypt($password_clear,substr($password_clear,0,2))); @@ -2126,6 +2136,20 @@ function password_hash($password_clear,$enc_type) { break; + case 'k5key': + $new_value = sprintf('{K5KEY}%s',$password_clear); + + system_message(array( + 'title'=>_('Unable to Encrypt Password'), + 'body'=>'phpLDAPadmin cannot encrypt K5KEY passwords', + 'type'=>'warn')); + + break; + + case 'md5': + $new_value = sprintf('{MD5}%s',base64_encode(pack('H*',md5($password_clear)))); + break; + case 'md5crypt': if (! defined('CRYPT_MD5') || CRYPT_MD5 == 0) error(_('Your system crypt library does not support md5crypt encryption.'),'error','index.php'); @@ -2134,19 +2158,6 @@ function password_hash($password_clear,$enc_type) { break; - case 'blowfish': - if (! defined('CRYPT_BLOWFISH') || CRYPT_BLOWFISH == 0) - error(_('Your system crypt library does not support blowfish encryption.'),'error','index.php'); - - # Hardcoded to second blowfish version and set number of rounds - $new_value = sprintf('{CRYPT}%s',crypt($password_clear,'$2a$12$'.random_salt(13))); - - break; - - case 'md5': - $new_value = sprintf('{MD5}%s',base64_encode(pack('H*',md5($password_clear)))); - break; - case 'sha': # Use php 4.3.0+ sha1 function, if it is available. if (function_exists('sha1'))