diff --git a/lib/aes/aes.rb b/lib/aes/aes.rb index 5235ad4..2f6b54e 100644 --- a/lib/aes/aes.rb +++ b/lib/aes/aes.rb @@ -84,7 +84,7 @@ def random_iv # Generate a random key def random_key(length=256) - _random_seed.unpack('H*')[0][0..((length/8)-1)] + _random_seed.unpack('H*')[0][0..((length/4)-1)] end private @@ -94,8 +94,7 @@ def _random_seed(size=32) if defined? OpenSSL::Random return OpenSSL::Random.random_bytes(size) else - chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a - (1..size).collect{|a| chars[rand(chars.size)] }.join + (1..size).collect{ rand(256).chr }.join end end diff --git a/test/test_aes.rb b/test/test_aes.rb index 527d0a2..f39693d 100644 --- a/test/test_aes.rb +++ b/test/test_aes.rb @@ -32,8 +32,8 @@ class TestAES < Test::Unit::TestCase end should "generate a new key when AES#key" do - assert_equal 32, AES.key.length - assert_equal 44, AES.key(256, :base_64).length + assert_equal 64, AES.key.length + assert_equal 89, AES.key(256, :base_64).length end end