[rt-devel] [Rt-commit] rt branch, 4.2/bcrypt-passwords, updated. rt-4.1.19-33-ga844c43

Reed Loden reed at reedloden.com
Wed Sep 4 02:33:21 EDT 2013


I had recommended SHA-256 based on the hexadecimal hash output being
used (basically, 256 bits being 32 bytes outputted as 64 characters of
hex), but I guess using the raw binary output from SHA-512 would work
fine, too. I just don't always trust things to handle binary data
well. :)

~reed

On Tue,  3 Sep 2013 15:43:02 -0400 (EDT)
alexmv at bestpractical.com (Alex Vandiver) wrote:

> The branch, 4.2/bcrypt-passwords has been updated
>        via  a844c4315b5da45d80c6a0fb090f2d39536a1f6d (commit)
>       from  07ac7c51167a9427a2857fd4a09671ed8b9cab9c (commit)
> 
> Summary of changes:
>  lib/RT/User.pm | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> - Log -----------------------------------------------------------------
> commit a844c4315b5da45d80c6a0fb090f2d39536a1f6d
> Author: Alex Vandiver <alexmv at bestpractical.com>
> Date:   Tue Sep 3 15:31:57 2013 -0400
> 
>     SHA-512 passwords before passing to brypt for key derivation
>     
>     The bcrypt key derivation function only usese the first 72 bytes of the
>     input; when used directly on a password, this effectively limits
>     password length to 72 characters.
>     
>     Allow for arbitrarily long passwords by hashing the password using
>     SHA-512 (which produces 512 bits, or 64 bytes, of output) before passing
>     it to bcrypt.
> 
> diff --git a/lib/RT/User.pm b/lib/RT/User.pm
> index 3e4c2de..2c25a23 100644
> --- a/lib/RT/User.pm
> +++ b/lib/RT/User.pm
> @@ -897,7 +897,7 @@ sub _GeneratePassword_bcrypt {
>          key_nul => 1,
>          cost    => $rounds,
>          salt    => $salt,
> -    }, encode_utf8($password) );
> +    }, Digest::SHA::sha512( encode_utf8($password) ) );
>  
>      return join("!", "", "bcrypt", sprintf("%02d", $rounds),
>                  Crypt::Eksblowfish::Bcrypt::en_base64( $salt ).
> 
> -----------------------------------------------------------------------
> _______________________________________________
> Rt-commit mailing list
> Rt-commit at lists.bestpractical.com
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-commit


More information about the rt-devel mailing list