summary refs log tree commit
diff options
context:
space:
mode:
authorRafael França <rafael@franca.dev>2019-10-29 09:46:53 -0400
committerGitHub <noreply@github.com>2019-10-29 09:46:53 -0400
commit529cd3302c62008fd7de183cc5b929c8e25be428 (patch)
tree2b227595edf10069301d1a3e8f3dd29cb123b4d1
parente50ca551434c6141c6703e195f30bae367149920 (diff)
parent65d9fc55903173b93f6c9b50007b24a3a712589d (diff)
downloadrack-529cd3302c62008fd7de183cc5b929c8e25be428.tar.gz
Merge pull request #1404 from ahorek/base64
use base64
-rw-r--r--lib/rack/auth/basic.rb3
-rw-r--r--lib/rack/auth/digest/nonce.rb5
-rw-r--r--lib/rack/session/cookie.rb5
3 files changed, 8 insertions, 5 deletions
diff --git a/lib/rack/auth/basic.rb b/lib/rack/auth/basic.rb
index 95bbafc4..d334939c 100644
--- a/lib/rack/auth/basic.rb
+++ b/lib/rack/auth/basic.rb
@@ -2,6 +2,7 @@
 
 require 'rack/auth/abstract/handler'
 require 'rack/auth/abstract/request'
+require 'base64'
 
 module Rack
   module Auth
@@ -47,7 +48,7 @@ module Rack
         end
 
         def credentials
-          @credentials ||= params.unpack("m*").first.split(':', 2)
+          @credentials ||= Base64.decode64(params).split(':', 2)
         end
 
         def username
diff --git a/lib/rack/auth/digest/nonce.rb b/lib/rack/auth/digest/nonce.rb
index 089bb6f4..3216d973 100644
--- a/lib/rack/auth/digest/nonce.rb
+++ b/lib/rack/auth/digest/nonce.rb
@@ -1,6 +1,7 @@
 # frozen_string_literal: true
 
 require 'digest/md5'
+require 'base64'
 
 module Rack
   module Auth
@@ -20,7 +21,7 @@ module Rack
         end
 
         def self.parse(string)
-          new(*string.unpack("m*").first.split(' ', 2))
+          new(*Base64.decode64(string).split(' ', 2))
         end
 
         def initialize(timestamp = Time.now, given_digest = nil)
@@ -28,7 +29,7 @@ module Rack
         end
 
         def to_s
-          ["#{@timestamp} #{digest}"].pack("m*").strip
+          Base64.encode64("#{@timestamp} #{digest}").strip
         end
 
         def digest
diff --git a/lib/rack/session/cookie.rb b/lib/rack/session/cookie.rb
index 3c067d7b..70ddadd6 100644
--- a/lib/rack/session/cookie.rb
+++ b/lib/rack/session/cookie.rb
@@ -6,6 +6,7 @@ require 'rack/request'
 require 'rack/response'
 require 'rack/session/abstract/id'
 require 'json'
+require 'base64'
 
 module Rack
 
@@ -51,11 +52,11 @@ module Rack
       # Encode session cookies as Base64
       class Base64
         def encode(str)
-          [str].pack('m')
+          ::Base64.encode64(str)
         end
 
         def decode(str)
-          str.unpack('m').first
+          ::Base64.decode64(str)
         end
 
         # Encode session cookies as Marshaled Base64 data