From f8e6baaedb29719370d7a3b2c9a1f28129635319 Mon Sep 17 00:00:00 2001 From: Joseph Teichman Date: Thu, 22 Sep 2022 18:06:39 -0400 Subject: [PATCH] Fixed key generation length --- lib/aes/aes.rb | 5 ++--- test/test_aes.rb | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) 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