diff -uNr -x .svn mantisbt-1.2.0a3/admin/schema.php mantisbt-lab/admin/schema.php --- mantisbt-1.2.0a3/admin/schema.php 2009-01-15 17:04:51.000000000 +0100 +++ mantisbt-lab/admin/schema.php 2009-02-28 23:55:02.000000000 +0100 @@ -301,7 +301,7 @@ username C(32) NOTNULL DEFAULT \" '' \", realname C(64) NOTNULL DEFAULT \" '' \", email C(64) NOTNULL DEFAULT \" '' \", - password C(32) NOTNULL DEFAULT \" '' \", + password C(128) NOTNULL DEFAULT \" '' \", date_created T NOTNULL DEFAULT '" . db_null_date() . "', last_visit T NOTNULL DEFAULT '" . db_null_date() . "', enabled L NOTNULL DEFAULT \" '1' \", diff -uNr -x .svn mantisbt-1.2.0a3/config_defaults_inc.php mantisbt-lab/config_defaults_inc.php --- mantisbt-1.2.0a3/config_defaults_inc.php 2009-01-15 17:04:59.000000000 +0100 +++ mantisbt-lab/config_defaults_inc.php 2009-02-28 23:56:44.000000000 +0100 @@ -2149,13 +2149,21 @@ /** * login method - * CRYPT or PLAIN or MD5 or LDAP or BASIC_AUTH + * CRYPT or PLAIN or MD5 or LDAP or BASIC_AUTH or SHA256 * You can simply change this at will. MantisBT will try to figure out how the passwords were encrypted. * @global int $g_login_method */ $g_login_method = MD5; /** + * password salt + * Static salt for user passwords + * Make this as long and complicated as you can + * NEW PASSWORDS HAS TO BE GENERATED WHEN THIS IS MODIFIED + */ + $g_password_static_salt = 'blowfish'; + + /** * limit reporters * Set to ON if you wish to limit reporters to only viewing bugs that they report. * @global int $g_limit_reporters diff -uNr -x .svn mantisbt-1.2.0a3/core/authentication_api.php mantisbt-lab/core/authentication_api.php --- mantisbt-1.2.0a3/core/authentication_api.php 2009-01-15 17:04:59.000000000 +0100 +++ mantisbt-lab/core/authentication_api.php 2009-02-28 23:55:03.000000000 +0100 @@ -340,6 +340,7 @@ $t_password = user_get_field( $p_user_id, 'password' ); $t_login_methods = Array( MD5, + SHA256, CRYPT, PLAIN, ); @@ -399,6 +400,11 @@ case MD5: $t_processed_password = md5( $p_password ); break; + case SHA256: + $p_salt = config_get( 'password_static_salt' ); + $t_processed_password = sha256( $p_salt . $p_password ); + break; + case BASIC_AUTH: case PLAIN: default: @@ -406,7 +412,7 @@ break; } - # cut this off to PASSLEN cahracters which the largest possible string in the database + # cut this off to PASSLEN characters which the largest possible string in the database return substr( $t_processed_password, 0, PASSLEN ); } diff -uNr -x .svn mantisbt-1.2.0a3/core/constant_inc.php mantisbt-lab/core/constant_inc.php --- mantisbt-1.2.0a3/core/constant_inc.php 2009-01-15 17:53:27.000000000 +0100 +++ mantisbt-lab/core/constant_inc.php 2009-02-28 23:55:03.000000000 +0100 @@ -115,6 +115,7 @@ define( 'LDAP', 4 ); define( 'BASIC_AUTH', 5 ); define( 'HTTP_AUTH', 6 ); +define( 'SHA256', 7 ); # file upload methods define( 'DISK', 1 ); @@ -476,4 +477,4 @@ # Lengths - NOTE: these may represent hard-coded values in db schema and should not be changed. define( 'USERLEN', 32); define( 'REALLEN', 64); -define( 'PASSLEN', 32); +define( 'PASSLEN', 128); diff -uNr -x .svn mantisbt-1.2.0a3/core/custom_function_api.php mantisbt-lab/core/custom_function_api.php --- mantisbt-1.2.0a3/core/custom_function_api.php 2009-01-15 17:04:52.000000000 +0100 +++ mantisbt-lab/core/custom_function_api.php 2009-02-28 23:55:03.000000000 +0100 @@ -196,6 +196,7 @@ CRYPT, CRYPT_FULL_SALT, MD5, + SHA256, ); if( in_array( config_get( 'login_method' ), $t_can_change ) ) { return true;