From 27956d9891ec7a0e777357a3049b4e9de6e73277 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Tue, 21 Feb 2017 16:57:24 +0100 Subject: [PATCH] Fix server_cipher client for Ruby 2.4 (crypt token must be 32bytes) --- src/authm_mad/remotes/server_cipher/server_cipher_auth.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/authm_mad/remotes/server_cipher/server_cipher_auth.rb b/src/authm_mad/remotes/server_cipher/server_cipher_auth.rb index eb99d706ca..51001698a6 100644 --- a/src/authm_mad/remotes/server_cipher/server_cipher_auth.rb +++ b/src/authm_mad/remotes/server_cipher/server_cipher_auth.rb @@ -39,12 +39,13 @@ class OpenNebula::ServerCipherAuth @srv_passwd = srv_passwd if !srv_passwd.empty? - @key = Digest::SHA1.hexdigest(@srv_passwd) + # truncate token to 32-bytes for Ruby >= 2.4 + @key = Digest::SHA1.hexdigest(@srv_passwd)[0..31] else @key = "" end - @cipher = OpenSSL::Cipher::Cipher.new(CIPHER) + @cipher = OpenSSL::Cipher.new(CIPHER) end ########################################################################### @@ -109,7 +110,8 @@ class OpenNebula::ServerCipherAuth # auth method for auth_mad def authenticate(srv_user,srv_pass, signed_text) begin - @key = srv_pass + # truncate token to 32-bytes for Ruby >= 2.4 + @key = srv_pass[0..31] s_user, t_user, expires = decrypt(signed_text).split(':')