2010-08-03 12 views
0

J'ai un problème avec la bibliothèque opensub de Ruby.TypeError: faux argument (chaîne)! (Type attendu d'OpenSSL :: Digest :: Digest)

Voici ce que je fais:

Dans mon application Rails, je lance le "./script/console", puis tapez:

>>OpenSSL::HMAC.hexdigest('sha256','','')

me donne cette erreur:

TypeError: wrong argument (String)! (Expected kind of OpenSSL::Digest::Digest) from (irb):15:in `hexdigest' from (irb):15

J'ai googlé cette erreur mais je n'ai pas pu avoir de réponse à ce qui se passe.

Répondre

2

Le message d'erreur indique que vous avez donné une chaîne où un objet de type OpenSSL::Digest::Digest était attendu.

Il faut donc utiliser OpenSSL::Digest::SHA256.new (qui est un objet de type OpenSSL::Digest::Digest à cause de SHA256 une sous-classe de étant Digest) au lieu de 'sha256' (qui est une chaîne).