From 600fcacc7551d9957feac8a32f7639dcc3fc49cd Mon Sep 17 00:00:00 2001 From: emboss Date: Sat, 5 Nov 2011 18:33:37 +0000 Subject: [PATCH] * test/openssl/test_engine.rb: add test for engine cipher. RC4 is used because AES is not supported by the "openssl" engine currently. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ test/openssl/test_engine.rb | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/ChangeLog b/ChangeLog index a9ff0d6023..071f8fb243 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Nov 06 03:22:36 2011 Martin Bosslet + + * test/openssl/test_engine.rb: add test for engine cipher. RC4 is used + because AES is not supported by the "openssl" engine currently. + Sun Nov 6 00:11:52 2011 Tanaka Akira * lib/test/unit.rb (Test::Unit::Options#non_options): options[:ruby] diff --git a/test/openssl/test_engine.rb b/test/openssl/test_engine.rb index f9106c0102..fce5f76ee6 100644 --- a/test/openssl/test_engine.rb +++ b/test/openssl/test_engine.rb @@ -37,6 +37,28 @@ class OpenSSL::TestEngine < Test::Unit::TestCase assert_not_nil(digest) data = "test" assert_equal(OpenSSL::Digest::SHA1.digest(data), digest.digest(data)) + cleanup + end + + def test_openssl_engine_cipher_rc4 + engine = OpenSSL::Engine.by_id("openssl") + algo = "RC4" #AES is not supported by openssl Engine (<=1.0.0e) + data = "a" * 1000 + key = OpenSSL::Random.random_bytes(16) + + encipher = engine.cipher(algo) + encipher.encrypt + encipher.key = key + + decipher = OpenSSL::Cipher.new(algo) + decipher.decrypt + decipher.key = key + + encrypted = encipher.update(data) + encipher.final + decrypted = decipher.update(encrypted) + decipher.final + + assert_equal(data, decrypted) + cleanup end private