summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--test/openssl/test_engine.rb22
2 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a9ff0d60230..071f8fb2436 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Nov 06 03:22:36 2011 Martin Bosslet <Martin.Bosslet@googlemail.com>
+
+ * 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 <akr@fsij.org>
* 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 f9106c01028..fce5f76ee62 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