lib/opentoken.rb in opentoken-1.2.1 vs lib/opentoken.rb in opentoken-1.2.2

- old
+ new

@@ -37,11 +37,11 @@ mac = [] mac << "0x01".hex.chr # OTK version mac << cipher.suite.chr mac << iv - mac << serialized + mac << force_encoding(serialized, 'BINARY') hash = OpenSSL::HMAC.digest(OpenToken::PasswordKeyGenerator::SHA1_DIGEST, key, mac.join) token_string = "" token_string = "OTK" + 1.chr + cipher.suite.chr token_string += hash @@ -112,11 +112,11 @@ verify payload_hmac == hash, "HMAC for payload was #{hash} and expected to be #{payload_hmac}" end unescaped_payload = CGI::unescapeHTML(unparsed_payload) puts 'UNESCAPED PAYLOAD', unescaped_payload if debug? - token = OpenToken::KeyValueSerializer.deserialize unescaped_payload + token = OpenToken::KeyValueSerializer.deserialize force_encoding(unescaped_payload, 'UTF-8') puts token.inspect if debug? token.validate! token end @@ -168,9 +168,12 @@ index = 0 string.each_byte do |b| puts "#{index}: #{b} => #{b.chr}" index += 1 end + end + def force_encoding(string, encoding) + string.respond_to?(:force_encoding) ? string.force_encoding(encoding) : string end end end # intialize defaults