diff --git a/lib/rack/auth/basic.rb b/lib/rack/auth/basic.rb index d5b4ea16d..11dab9797 100644 --- a/lib/rack/auth/basic.rb +++ b/lib/rack/auth/basic.rb @@ -2,7 +2,6 @@ require_relative 'abstract/handler' require_relative 'abstract/request' -require 'base64' module Rack module Auth @@ -48,7 +47,7 @@ def basic? end def credentials - @credentials ||= Base64.decode64(params).split(':', 2) + @credentials ||= params.unpack("m").first.split(':', 2) end def username diff --git a/lib/rack/auth/digest/nonce.rb b/lib/rack/auth/digest/nonce.rb index 3216d973e..ec871c806 100644 --- a/lib/rack/auth/digest/nonce.rb +++ b/lib/rack/auth/digest/nonce.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require 'digest/md5' -require 'base64' module Rack module Auth @@ -21,7 +20,7 @@ class << self end def self.parse(string) - new(*Base64.decode64(string).split(' ', 2)) + new(*string.unpack("m").first.split(' ', 2)) end def initialize(timestamp = Time.now, given_digest = nil) @@ -29,7 +28,7 @@ def initialize(timestamp = Time.now, given_digest = nil) end def to_s - Base64.encode64("#{@timestamp} #{digest}").strip + ["#{@timestamp} #{digest}"].pack("m0") end def digest diff --git a/lib/rack/session/cookie.rb b/lib/rack/session/cookie.rb index 737c0b33b..3f1fc8a7a 100644 --- a/lib/rack/session/cookie.rb +++ b/lib/rack/session/cookie.rb @@ -4,7 +4,6 @@ require 'zlib' require_relative 'abstract/id' require 'json' -require 'base64' require 'delegate' module Rack @@ -51,11 +50,11 @@ class Cookie < Abstract::PersistedSecure # Encode session cookies as Base64 class Base64 def encode(str) - ::Base64.strict_encode64(str) + [str].pack("m0") end def decode(str) - ::Base64.decode64(str) + str.unpack("m").first end # Encode session cookies as Marshaled Base64 data