From 2b9b1f9befde874ce74bab16b119bb89cc672bde Mon Sep 17 00:00:00 2001 From: Brian Dear Date: Tue, 6 Jan 2015 11:27:10 +0100 Subject: [PATCH 1/2] fixes #79 -- changes from Digest::HMAC to OpenSSL --- lib/opentok/token_generator.rb | 6 +++--- spec/matchers/token.rb | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/opentok/token_generator.rb b/lib/opentok/token_generator.rb index 1a8de418..4eff171e 100644 --- a/lib/opentok/token_generator.rb +++ b/lib/opentok/token_generator.rb @@ -3,7 +3,7 @@ require "base64" require "addressable/uri" -require "digest/hmac" +require "openssl" require "active_support/time" module OpenTok @@ -81,11 +81,11 @@ def generate_token end data_params[:connection_data] = data end - + digest = OpenSSL::Digest.new('sha1') data_string = Addressable::URI.form_encode data_params meta_string = Addressable::URI.form_encode({ :partner_id => api_key, - :sig => Digest::HMAC.hexdigest(data_string, api_secret, Digest::SHA1) + :sig => OpenSSL::HMAC.hexdigest(digest, api_secret, data_string) }) TOKEN_SENTINEL + Base64.strict_encode64(meta_string + ":" + data_string) diff --git a/spec/matchers/token.rb b/spec/matchers/token.rb index 5dac73f4..297fc0e9 100644 --- a/spec/matchers/token.rb +++ b/spec/matchers/token.rb @@ -1,7 +1,7 @@ require "rspec/matchers" require "base64" -require "digest/hmac" +require "openssl" require "addressable/uri" RSpec::Matchers.define :carry_token_data do |input_data| @@ -40,9 +40,10 @@ match do |token| decoded_token = Base64.decode64(token[4..token.length]) metadata, data_string = decoded_token.split(':') + digest = OpenSSL::Digest.new('sha1') # form_unencode returns an array of arrays, annoying so hardcoded lookup # expected format: [["partner_id", "..."], ["sig", "..."]] signature = Addressable::URI.form_unencode(metadata)[1][1] - signature == Digest::HMAC.hexdigest(data_string, api_secret, Digest::SHA1) + signature == OpenSSL::HMAC.hexdigest(digest, api_secret, data_string) end end From d1cf45a33cb85b3467abd130f938a88ac691a226 Mon Sep 17 00:00:00 2001 From: Brian Dear Date: Tue, 6 Jan 2015 23:46:25 +0100 Subject: [PATCH 2/2] adds Ruby 2.2.0 to travis yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index d854c08f..104734c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ rvm: - 1.9.3 - 2.0.0 - 2.1.0 +- 2.2.0 - rbx-2 notifications: slack: