[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