J
Jamis Buck
Well, the thunderous silence that followed my query prompted me to
continue with my self-assigned task to implement Net::SSH in solitude.
However, I'm rapidly learning *why* Net::SSH has never, to date, been
implemented in Ruby--the OpenSSL module for Ruby leaves out some very
key features (no pun intended), namely:
1) It is frankly impossible to create an empty DH key with the Ruby
OpenSSL interface, and
2) There is no hook into the RSA_verify method.
Those are the two stumpers I've run into so far, and I have no doubt
I'll run into more.
So, given this situation, which is the recommended course of action?
1) Add the missing features to Ruby/OpenSSL and then submit patches,
hoping they'll get integrated into the main distro, or
2) Create my own binary module that provides the necessary features
of OpenSSL, and distribute it as part of Net::SSH.
Any opinions?
--
Jamis Buck
(e-mail address removed)
http://www.jamisbuck.org/jamis
ruby -h | ruby -e
'a=[];readlines.join.scan(/-(.)\[e|Kk(\S*)|le.l(..)e|#!(\S*)/) {|r| a <<
r.compact.first };puts "\n>#{a.join(%q/ /)}<\n\n"'
continue with my self-assigned task to implement Net::SSH in solitude.
However, I'm rapidly learning *why* Net::SSH has never, to date, been
implemented in Ruby--the OpenSSL module for Ruby leaves out some very
key features (no pun intended), namely:
1) It is frankly impossible to create an empty DH key with the Ruby
OpenSSL interface, and
2) There is no hook into the RSA_verify method.
Those are the two stumpers I've run into so far, and I have no doubt
I'll run into more.
So, given this situation, which is the recommended course of action?
1) Add the missing features to Ruby/OpenSSL and then submit patches,
hoping they'll get integrated into the main distro, or
2) Create my own binary module that provides the necessary features
of OpenSSL, and distribute it as part of Net::SSH.
Any opinions?
--
Jamis Buck
(e-mail address removed)
http://www.jamisbuck.org/jamis
ruby -h | ruby -e
'a=[];readlines.join.scan(/-(.)\[e|Kk(\S*)|le.l(..)e|#!(\S*)/) {|r| a <<
r.compact.first };puts "\n>#{a.join(%q/ /)}<\n\n"'