Help a beginner

Hi,

It seems my ruby version is not accepting:
OpenSSL::Digest::Digest.new(‘sha256’)

It’s showing the error: Unsupported digest algorithm (sha256).

The Framework trace is: /usr/local/lib/ruby/1.8/openssl/digest.rb:55:in
`initialize’ (…)

My ruby version is: ruby 1.8.7 (2010-08-16 patchlevel 302)
[i686-darwin9]

If I do ‘which ruby’ tells me: /opt/local/bin/ruby

And I am using Mac OS X 10.5.8

What I am doing wrong? What I should do?

I will really appreciate any help, tip or advise.

Thanks in advance,

Guille.

On Thu, Dec 16, 2010 at 2:30 PM, Guille L. [email protected] wrote:

It seems my ruby version is not accepting:
OpenSSL::Digest::Digest.new(‘sha256’)
It’s showing the error: Unsupported digest algorithm (sha256).

probably not a ruby version problem, eg

$ rvm exec ruby -v -ropenssl -e “p
OpenSSL::Digest::Digest.new(‘sha256’)”
ruby 1.9.2dev (2010-07-11 revision 28618) [i686-linux]
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
ruby 1.9.2dev (2010-07-02 revision 28524) [i686-linux]
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-linux]
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
ruby 1.9.2dev (2010-05-31 revision 28117) [i686-linux]
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
ruby 1.8.6 (2010-02-05 patchlevel 399) [i686-linux]
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
ruby 1.9.1p378 (2010-01-10 revision 26273) [i686-linux]
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>

but i’m on linux.

try first in irb. see if you still get the error.
if not, some gem you’re loading is screwed… require the gems one at
a time to capture the culprit…

best regards -botp

What gem are you wearing?
$ rvm list

rvm rubies

ree-1.8.7-2010.02 [ i386 ]
ruby-1.8.7-p302 [ i386 ]
=> ruby-1.9.2-p0 [ i386 ]

$ gem search openSSl -r

*** REMOTE GEMS ***

costan-tem_openssl (0.3.6)
jruby-jruby-openssl (0.5.0.4)
JRuby-OpenSSL (0.1 ruby)
jruby-openssl (0.7.2 ruby)
openssl-extensions (0.0.9 ruby)
openssl-nonblock (0.2.1 ruby)
pftg-jruby-openssl (0.5.3 ruby)
ruby-hmac-openssl (0.1.0 ruby)
tem_openssl (0.3.6 ruby)

Jose Calderon-Celis
5199906-7970
http://www.tm.com.pe/mensajes/

2010/12/16 botp [email protected]

Try a more common digest, e.g.

ruby -ropenssl -e ‘p OpenSSL::Digest::Digest.new(“md5”)’

If that works, then perhaps the version of openssl you have doesn’t
support sha256.

Thanks -botp and Jose.
I will try both paths and see what I get.

I will come back with the results.

Thanks again for the help.

Back at home (from work) I am trying all the possibilities you are
telling me.

All the ones with “rvm” I am not able to execute them as I don’t have
Ruby Version Manager installed.

But I have done:
$ gem search openSSl -r

And it shows:
** REMOTE GEMS ***

jruby-openssl (0.7.2 ruby)
JRuby-OpenSSL (0.1 ruby)
openssl-extensions (0.0.9 ruby)
openssl-nonblock (0.2.1 ruby)
pftg-jruby-openssl (0.5.3 ruby)
ruby-hmac-openssl (0.1.0 ruby)
tem_openssl (0.3.6 ruby)

Also doing:
$ ruby -ropenssl -e ‘p OpenSSL::Digest::Digest.new(“md5”)’

It works:
#<OpenSSL::Digest::Digest: d41d8cd98f00b204e9800998ecf8427e>

But the problen is that for the Gem I am trying to use (asin) I need the
sha256.

As Brian was saying, probably the problem is that the version of openssl
I have doesn’t
support sha256. I am gonna try to fix that.

Thanks again for your help guys.

One last question: what is doing $ ruby -ropenssl -e ‘p
OpenSSL::Digest::Digest.new(“md5”)’ ?

Becuase if I try:

$ ruby -ropenssl -e ‘p OpenSSL::Digest::Digest.new(“sha256”)’
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>

What does it mean?

Does it mean sha256 works?

How I do that?

On Fri, Dec 17, 2010 at 5:57 AM, Guille L. [email protected] wrote:

How I do that?

  1. Write test case (i.e. a minimal script doing what you want as above).
  2. Require the gems one after the other.
  3. Note at which point the script fails, and narrow down the
    offender(s).


Phillip G.

Though the folk I have met,
(Ah, how soon!) they forget
When I’ve moved on to some other place,
There may be one or two,
When I’ve played and passed through,
Who’ll remember my song or my face.

On Fri, Dec 17, 2010 at 12:27 PM, Guille L. [email protected]
wrote:

$ ruby -ropenssl -e ‘p OpenSSL::Digest::Digest.new(“sha256”)’
#<OpenSSL::Digest::Digest:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>
Does it mean sha256 works?

yes. that is why you have to check one at a time wc gem is screwing
openssl…

best regards -botp

On Fri, Dec 17, 2010 at 1:50 PM, Guille L. [email protected] wrote:

Thanks Phillip, but what I am confused now is about how I require one
gem after the other? how do I control which gems are loaded?

You add and remove require statements as necessary:

require “gem_file_to_be_required”

require “inactive_gem”

:wink:


Phillip G.

Though the folk I have met,
(Ah, how soon!) they forget
When I’ve moved on to some other place,
There may be one or two,
When I’ve played and passed through,
Who’ll remember my song or my face.

Thanks Phillip, but what I am confused now is about how I require one
gem after the other? how do I control which gems are loaded?

right now if I take a look at my program’s Gemfile, it’s just:

source ‘http://rubygems.org

gem ‘rails’, ‘3.0.3’
gem ‘sqlite3-ruby’, :require => ‘sqlite3’
gem ‘asin’

And thanks again for all the help.

And if I do:

gem list

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.3, 2.1.2)
actionpack (3.0.3, 2.1.2)
activemodel (3.0.3)
activerecord (3.0.3, 2.1.2)
activeresource (3.0.3, 2.1.2)
activesupport (3.0.3, 2.3.9, 2.1.2)
arel (2.0.6)
asin (0.0.8)
bcrypt-ruby (2.1.2)
bson (1.1.4)
bson_ext (1.1.4)
builder (3.0.0, 2.1.2)
bundler (1.0.7)
capistrano (2.5.19, 2.5.0)
cgi_multipart_eof_fix (2.5.0)
commonwatir (1.6.7, 1.6.2)
configuration (1.2.0)
crack (0.1.8)
curb (0.7.8)
daemons (1.1.0, 1.0.10)
devise (1.1.5)
diff-lcs (1.1.2)
erubis (2.6.6)
fastthread (1.0.7, 1.0.1)
firewatir (1.6.7, 1.6.2)
gem_plugin (0.2.3)
hashie (0.4.0, 0.2.2)
heroku (1.14.9, 1.14.8)
highline (1.6.1, 1.5.0)
hoe (2.8.0, 2.7.0, 1.8.2)
httparty (0.6.1)
httpclient (2.1.5.2)
i18n (0.5.0)
imdb_party (0.3.0)
json_pure (1.4.6)
launchy (0.3.7)
mail (2.2.12)
mime-types (1.16)
mongo (1.1.4)
mongoid (2.0.0.beta.20)
mongrel (1.1.5)
mysql (2.8.1, 2.7)
mysql2 (0.2.6)
net-scp (1.0.4, 1.0.1)
net-sftp (2.0.5, 2.0.1)
net-ssh (2.0.23, 2.0.4)
net-ssh-gateway (1.0.1, 1.0.0)
nokogiri (1.4.4)
ParseTree (3.0.6, 3.0.2, 2.1.1)
polyglot (0.3.1)
rack (1.2.1)
rack-mount (0.6.13)
rack-test (0.5.6)
rails (3.0.3, 2.1.2)
railties (3.0.3)
rake (0.8.7, 0.8.3)
rest-client (1.6.1)
rspec (2.3.0, 2.1.0, 1.1.11)
rspec-core (2.3.0, 2.1.0)
rspec-expectations (2.3.0, 2.1.0)
rspec-mocks (2.3.0, 2.1.0)
ruby2ruby (1.2.5, 1.2.1, 1.1.8)
ruby_parser (2.0.5)
rubyforge (2.0.4, 1.0.1)
rubygems-update (1.3.7)
RubyInline (3.8.6, 3.8.1)
rvm (1.1.5)
s4t-utils (1.0.4)
sake (1.0.15)
sexp_processor (3.0.5)
simple_form (1.3.0)
sqlite3-ruby (1.2.4)
sucker (1.1.3)
termios (0.9.4)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.23)
user-choices (1.1.6.1, 1.1.6)
warden (1.0.3)
will_paginate (3.0.pre2)
xml-simple (1.0.12, 1.0.11)
yayimdbs (0.1.9)
ZenTest (4.4.2, 4.4.0, 3.11.0)