Issue #5547 has been updated by Martin Bosslet.

Status changed from Assigned to Third Party's Issue
Assignee changed from Martin Bosslet to Yui NARUSE

It's OpenSSL itself that causes the weird behaviour.
 
On my machine with no cryptodev installed, I get the expected
output, so I would assume it's either cryptodev itself or at
least the cryptodev ENGINE implementation of OpenSSL that
causes this. Investigate further or is it safe to close this?
----------------------------------------
Bug #5547: Cleanup engine after a test
http://redmine.ruby-lang.org/issues/5547

Author: Yui NARUSE
Status: Third Party's Issue
Priority: Normal
Assignee: Yui NARUSE
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