From 1bbb4960b15e68b32c9a569e642defbf16eb85e4 Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Thu, 8 Feb 2024 09:58:57 +0100 Subject: [PATCH] Drop depenency on base64 --- http.gemspec | 1 - lib/http/chainable.rb | 6 ++---- lib/http/request.rb | 5 ++--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/http.gemspec b/http.gemspec index cb98dddb..d11ee618 100644 --- a/http.gemspec +++ b/http.gemspec @@ -28,7 +28,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.0" gem.add_runtime_dependency "addressable", "~> 2.8" - gem.add_runtime_dependency "base64", "~> 0.1" gem.add_runtime_dependency "http-cookie", "~> 1.0" gem.add_runtime_dependency "http-form_data", "~> 2.2" gem.add_runtime_dependency "llhttp-ffi", "~> 0.5.0" diff --git a/lib/http/chainable.rb b/lib/http/chainable.rb index acd534f6..6e709012 100644 --- a/lib/http/chainable.rb +++ b/lib/http/chainable.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "base64" - require "http/headers" module HTTP @@ -213,9 +211,9 @@ def auth(value) def basic_auth(opts) user = opts.fetch(:user) pass = opts.fetch(:pass) - creds = "#{user}:#{pass}" + strict_base64_encoded_creds = ["#{user}:#{pass}"].pack("m0") - auth("Basic #{Base64.strict_encode64(creds)}") + auth("Basic #{strict_base64_encoded_creds}") end # Get options for HTTP diff --git a/lib/http/request.rb b/lib/http/request.rb index ff2dbb3b..8b239a65 100644 --- a/lib/http/request.rb +++ b/lib/http/request.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require "forwardable" -require "base64" require "time" require "http/errors" @@ -159,8 +158,8 @@ def include_proxy_authorization_header end def proxy_authorization_header - digest = Base64.strict_encode64("#{proxy[:proxy_username]}:#{proxy[:proxy_password]}") - "Basic #{digest}" + strict_base64_encoded_digest = ["#{proxy[:proxy_username]}:#{proxy[:proxy_password]}"].pack("m0") + "Basic #{strict_base64_encoded_digest}" end # Setup tunnel through proxy for SSL request