Issue #5547 has been reported by Yui NARUSE.

----------------------------------------
Bug #5547: Cleanup engine after a test
http://redmine.ruby-lang.org/issues/5547

Author: Yui NARUSE
Status: Assigned
Priority: Normal
Assignee: Martin Bosslet
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2011-11-01 trunk 33605) [i386-netbsdelf5.99.56]


OpenSSL::Engine.load() loads engines and register them, and it may change the behavior of some existing methods.

For example on NetBSD 6 with cryptodev, it effects DH as folloing:
./ruby -ropenssl -e'p OpenSSL::PKey::DH.new(256).public_key.private?;p OpenSSL::Engine.load;p OpenSSL::PKey::DH.new(256).public_key.private?'
false
true
true

After loads cryptodev and register it (yes, it needs register. current ext/openssl can't register a engine),
OpenSSL::PKey::DH#private?'s behavior seems to be changed.

Whether it is a bug or not, test/openssl/test_engine.rb should be fixed.

Index: test/openssl/test_engine.rb
===================================================================
--- test/openssl/test_engine.rb (revision 33605)
+++ test/openssl/test_engine.rb (working copy)
@@ -8,6 +8,7 @@
     OpenSSL::Engine.load
     OpenSSL::Engine.engines
     OpenSSL::Engine.engines
+    OpenSSL::Engine.cleanup
   end
 
 end


-- 
http://redmine.ruby-lang.org