[Rt-commit] rt branch, 3.9-trunk, updated. rt-3.8.8-339-g0d96f1b

Thomas Sibley trs at bestpractical.com
Mon Aug 16 15:09:22 EDT 2010


The branch, 3.9-trunk has been updated
       via  0d96f1bed21431492b670545a64e397dd38d6d8d (commit)
      from  0838fea5c646645eeba15ce5e0a9f975dd991a88 (commit)

Summary of changes:
 lib/RT/User_Overlay.pm       |  180 +-----------------------------------------
 sbin/rt-test-dependencies.in |    1 +
 2 files changed, 4 insertions(+), 177 deletions(-)

- Log -----------------------------------------------------------------
commit 0d96f1bed21431492b670545a64e397dd38d6d8d
Author: Thomas Sibley <trs at bestpractical.com>
Date:   Mon Aug 16 14:52:59 2010 -0400

    Pronounceable passwords were refactored into a module long ago
    
    So let's actually, you know, use that module.  :)

diff --git a/lib/RT/User_Overlay.pm b/lib/RT/User_Overlay.pm
index ffc8c7a..2af796f 100755
--- a/lib/RT/User_Overlay.pm
+++ b/lib/RT/User_Overlay.pm
@@ -74,6 +74,7 @@ use RT::Principals;
 use RT::ACE;
 use RT::Interface::Email;
 use Encode;
+use Text::Password::Pronounceable;
 
 sub _OverlayAccessible {
     {
@@ -743,183 +744,8 @@ Returns a random password between MIN_LEN and MAX_LEN characters long.
 =cut
 
 sub GenerateRandomPassword {
-    my $self       = shift;
-    my $min_length = shift;
-    my $max_length = shift;
-
-    #This code derived from mpw.pl, a bit of code with a sordid history
-    # Its notes: 
-
-    # Perl cleaned up a bit by Jesse Vincent 1/14/2001.
-    # Converted to perl from C by Marc Horowitz, 1/20/2000.
-    # Converted to C from Multics PL/I by Bill Sommerfeld, 4/21/86.
-    # Original PL/I version provided by Jerry Saltzer.
-
-    my ( $frequency, $start_freq, $total_sum, $row_sums );
-
-    #When munging characters, we need to know where to start counting letters from
-    my $a = ord('a');
-
-    # frequency of English digraphs (from D Edwards 1/27/66) 
-    $frequency = [
-        [
-            4, 20, 28, 52, 2,  11,  28, 4,  32, 4, 6, 62, 23, 167,
-            2, 14, 0,  83, 76, 127, 7,  25, 8,  1, 9, 1
-        ],    # aa - az
-        [
-            13, 0, 0, 0,  55, 0, 0,  0, 8, 2, 0,  22, 0, 0,
-            11, 0, 0, 15, 4,  2, 13, 0, 0, 0, 15, 0
-        ],    # ba - bz
-        [
-            32, 0, 7, 1,  69, 0,  0,  33, 17, 0, 10, 9, 1, 0,
-            50, 3, 0, 10, 0,  28, 11, 0,  0,  0, 3,  0
-        ],    # ca - cz
-        [
-            40, 16, 9, 5,  65, 18, 3,  9, 56, 0, 1, 4, 15, 6,
-            16, 4,  0, 21, 18, 53, 19, 5, 15, 0, 3, 0
-        ],    # da - dz
-        [
-            84, 20, 55, 125, 51, 40, 19, 16,  50,  1,
-            4,  55, 54, 146, 35, 37, 6,  191, 149, 65,
-            9,  26, 21, 12,  5,  0
-        ],    # ea - ez
-        [
-            19, 3, 5, 1,  19, 21, 1, 3, 30, 2, 0, 11, 1, 0,
-            51, 0, 0, 26, 8,  47, 6, 3, 3,  0, 2, 0
-        ],    # fa - fz
-        [
-            20, 4, 3, 2,  35, 1,  3, 15, 18, 0, 0, 5, 1, 4,
-            21, 1, 1, 20, 9,  21, 9, 0,  5,  0, 1, 0
-        ],    # ga - gz
-        [
-            101, 1, 3, 0, 270, 5,  1, 6, 57, 0, 0, 0, 3, 2,
-            44,  1, 0, 3, 10,  18, 6, 0, 5,  0, 3, 0
-        ],    # ha - hz
-        [
-            40, 7,  51, 23, 25, 9,   11, 3,  0, 0, 2, 38, 25, 202,
-            56, 12, 1,  46, 79, 117, 1,  22, 0, 4, 0, 3
-        ],    # ia - iz
-        [
-            3, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-            4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0
-        ],    # ja - jz
-        [
-            1, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 0, 2,
-            0, 0, 0, 0, 6,  2, 1, 0, 2,  0, 1, 0
-        ],    # ka - kz
-        [
-            44, 2, 5, 12, 62, 7,  5, 2, 42, 1, 1,  53, 2, 2,
-            25, 1, 1, 2,  16, 23, 9, 0, 1,  0, 33, 0
-        ],    # la - lz
-        [
-            52, 14, 1, 0, 64, 0, 0, 3, 37, 0, 0, 0, 7, 1,
-            17, 18, 1, 2, 12, 3, 8, 0, 1,  0, 2, 0
-        ],    # ma - mz
-        [
-            42, 10, 47, 122, 63, 19, 106, 12, 30, 1,
-            6,  6,  9,  7,   54, 7,  1,   7,  44, 124,
-            6,  1,  15, 0,   12, 0
-        ],    # na - nz
-        [
-            7,  12, 14, 17, 5,  95, 3,  5,  14, 0, 0, 19, 41, 134,
-            13, 23, 0,  91, 23, 42, 55, 16, 28, 0, 4, 1
-        ],    # oa - oz
-        [
-            19, 1, 0, 0,  37, 0, 0, 4, 8, 0, 0, 15, 1, 0,
-            27, 9, 0, 33, 14, 7, 6, 0, 0, 0, 0, 0
-        ],    # pa - pz
-        [
-            0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0
-        ],    # qa - qz
-        [
-            83, 8, 16, 23, 169, 4,  8, 8,  77, 1, 10, 5, 26, 16,
-            60, 4, 0,  24, 37,  55, 6, 11, 4,  0, 28, 0
-        ],    # ra - rz
-        [
-            65, 9,  17, 9, 73, 13,  1,  47, 75, 3, 0, 7, 11, 12,
-            56, 17, 6,  9, 48, 116, 35, 1,  28, 0, 4, 0
-        ],    # sa - sz
-        [
-            57, 22, 3,  1, 76, 5, 2, 330, 126, 1,
-            0,  14, 10, 6, 79, 7, 0, 49,  50,  56,
-            21, 2,  27, 0, 24, 0
-        ],    # ta - tz
-        [
-            11, 5,  9, 6,  9,  1,  6, 0, 9, 0, 1, 19, 5, 31,
-            1,  15, 0, 47, 39, 31, 0, 3, 0, 0, 0, 0
-        ],    # ua - uz
-        [
-            7, 0, 0, 0, 72, 0, 0, 0, 28, 0, 0, 0, 0, 0,
-            5, 0, 0, 0, 0,  0, 0, 0, 0,  0, 3, 0
-        ],    # va - vz
-        [
-            36, 1, 1, 0, 38, 0, 0, 33, 36, 0, 0, 4, 1, 8,
-            15, 0, 0, 0, 4,  2, 0, 0,  1,  0, 0, 0
-        ],    # wa - wz
-        [
-            1, 0, 2, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0,
-            1, 5, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0
-        ],    # xa - xz
-        [
-            14, 5, 4, 2, 7,  12, 12, 6, 10, 0, 0, 3, 7, 5,
-            17, 3, 0, 4, 16, 30, 0,  0, 5,  0, 0, 0
-        ],    # ya - yz
-        [
-            1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-        ]
-    ];    # za - zz
-
-    #We need to know the totals for each row 
-    $row_sums = [
-        map {
-            my $sum = 0;
-            map { $sum += $_ } @$_;
-            $sum;
-          } @$frequency
-    ];
-
-    #Frequency with which a given letter starts a word.
-    $start_freq = [
-        1299, 425, 725, 271, 375, 470, 93, 223, 1009, 24,
-        20,   355, 379, 319, 823, 618, 21, 317, 962,  1991,
-        271,  104, 516, 6,   16,  14
-    ];
-
-    $total_sum = 0;
-    map { $total_sum += $_ } @$start_freq;
-
-    my $length = $min_length + int( rand( $max_length - $min_length ) );
-
-    my $char = $self->_GenerateRandomNextChar( $total_sum, $start_freq );
-    my @word = ( $char + $a );
-    for ( 2 .. $length ) {
-        $char =
-          $self->_GenerateRandomNextChar( $row_sums->[$char],
-            $frequency->[$char] );
-        push ( @word, $char + $a );
-    }
-
-    #Return the password
-    return pack( "C*", @word );
-
-}
-
-#A private helper function for RandomPassword
-# Takes a row summary and a frequency chart for the next character to be searched
-sub _GenerateRandomNextChar {
-    my $self = shift;
-    my ( $all, $freq ) = @_;
-    my ( $pos, $i );
-
-    for ( $pos = int( rand($all) ), $i = 0 ;
-        $pos >= $freq->[$i] ;
-        $pos -= $freq->[$i], $i++ )
-    {
-    }
-
-    return ($i);
+    my $self = shift;   # just to drop it
+    return Text::Password::Pronounceable->generate(@_);
 }
 
 sub SafeSetPassword {
diff --git a/sbin/rt-test-dependencies.in b/sbin/rt-test-dependencies.in
index e862b4e..6de8b14 100755
--- a/sbin/rt-test-dependencies.in
+++ b/sbin/rt-test-dependencies.in
@@ -240,6 +240,7 @@ Encode 2.21
 CSS::Squish 0.06
 File::Glob
 Devel::StackTrace 1.19
+Text::Password::Pronounceable
 .
 
 $deps{'MASON'} = [ text_to_hash( << '.') ];

-----------------------------------------------------------------------


More information about the Rt-commit mailing list