diff options
author | Rafael França <rafael@franca.dev> | 2019-10-29 09:46:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-29 09:46:53 -0400 |
commit | 529cd3302c62008fd7de183cc5b929c8e25be428 (patch) | |
tree | 2b227595edf10069301d1a3e8f3dd29cb123b4d1 | |
parent | e50ca551434c6141c6703e195f30bae367149920 (diff) | |
parent | 65d9fc55903173b93f6c9b50007b24a3a712589d (diff) | |
download | rack-529cd3302c62008fd7de183cc5b929c8e25be428.tar.gz |
Merge pull request #1404 from ahorek/base64
use base64
-rw-r--r-- | lib/rack/auth/basic.rb | 3 | ||||
-rw-r--r-- | lib/rack/auth/digest/nonce.rb | 5 | ||||
-rw-r--r-- | lib/rack/session/cookie.rb | 5 |
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 |