ruby-changes:69434
From: David <ko1@a...>
Date: Mon, 25 Oct 2021 20:55:17 +0900 (JST)
Subject: [ruby-changes:69434] 9d28618091 (master): [rubygems/rubygems] Avoid loading the `digest` gem unnecessarily
https://git.ruby-lang.org/ruby.git/commit/?id=9d28618091 From 9d286180916e23bb2d9e6bf43cd75f439a1939ce Mon Sep 17 00:00:00 2001 From: David Rodriguez <deivid.rodriguez@r...> Date: Sun, 10 Oct 2021 17:21:53 +0200 Subject: [rubygems/rubygems] Avoid loading the `digest` gem unnecessarily OpenSSL includes what we need. https://github.com/rubygems/rubygems/commit/955f3b72ca --- lib/rubygems/s3_uri_signer.rb | 3 +-- lib/rubygems/source/git.rb | 4 ++-- test/rubygems/test_gem_package.rb | 14 +++++++------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/lib/rubygems/s3_uri_signer.rb b/lib/rubygems/s3_uri_signer.rb index da2af5f3268..4d1deee9972 100644 --- a/lib/rubygems/s3_uri_signer.rb +++ b/lib/rubygems/s3_uri_signer.rb @@ -1,4 +1,3 @@ https://github.com/ruby/ruby/blob/trunk/lib/rubygems/s3_uri_signer.rb#L1 -require 'digest' require_relative 'openssl' ## @@ -87,7 +86,7 @@ class Gem::S3URISigner https://github.com/ruby/ruby/blob/trunk/lib/rubygems/s3_uri_signer.rb#L86 "AWS4-HMAC-SHA256", date_time, credential_info, - Digest::SHA256.hexdigest(canonical_request), + OpenSSL::Digest::SHA256.hexdigest(canonical_request), ].join("\n") end diff --git a/lib/rubygems/source/git.rb b/lib/rubygems/source/git.rb index 95dee9b883e..cda5aa80738 100644 --- a/lib/rubygems/source/git.rb +++ b/lib/rubygems/source/git.rb @@ -225,7 +225,7 @@ class Gem::Source::Git < Gem::Source https://github.com/ruby/ruby/blob/trunk/lib/rubygems/source/git.rb#L225 # A hash for the git gem based on the git repository URI. def uri_hash # :nodoc: - require 'digest' + require_relative '../openssl' normalized = if @repository =~ %r{^\w+://(\w+@)?} @@ -235,6 +235,6 @@ class Gem::Source::Git < Gem::Source https://github.com/ruby/ruby/blob/trunk/lib/rubygems/source/git.rb#L235 @repository end - Digest::SHA1.hexdigest normalized + OpenSSL::Digest::SHA1.hexdigest normalized end end diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb index 27afca1ccbf..48dcbee9f1f 100644 --- a/test/rubygems/test_gem_package.rb +++ b/test/rubygems/test_gem_package.rb @@ -1,7 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_package.rb#L1 # frozen_string_literal: true require_relative 'package/tar_test_case' -require 'digest' +require 'rubygems/openssl' class TestGemPackage < Gem::Package::TarTestCase def setup @@ -84,17 +84,17 @@ class TestGemPackage < Gem::Package::TarTestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_package.rb#L84 io.write spec.to_yaml end - metadata_sha256 = Digest::SHA256.hexdigest s.string - metadata_sha512 = Digest::SHA512.hexdigest s.string + metadata_sha256 = OpenSSL::Digest::SHA256.hexdigest s.string + metadata_sha512 = OpenSSL::Digest::SHA512.hexdigest s.string expected = { 'SHA512' => { 'metadata.gz' => metadata_sha512, - 'data.tar.gz' => Digest::SHA512.hexdigest(tar), + 'data.tar.gz' => OpenSSL::Digest::SHA512.hexdigest(tar), }, 'SHA256' => { 'metadata.gz' => metadata_sha256, - 'data.tar.gz' => Digest::SHA256.hexdigest(tar), + 'data.tar.gz' => OpenSSL::Digest::SHA256.hexdigest(tar), }, } @@ -857,7 +857,7 @@ class TestGemPackage < Gem::Package::TarTestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_package.rb#L857 io.write metadata_gz end - digest = Digest::SHA1.new + digest = OpenSSL::Digest::SHA1.new digest << metadata_gz checksums = { @@ -1016,7 +1016,7 @@ class TestGemPackage < Gem::Package::TarTestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_package.rb#L1016 bogus_data = Gem::Util.gzip 'hello' fake_signer = Class.new do def digest_name; 'SHA512'; end - def digest_algorithm; Digest(:SHA512).new; end + def digest_algorithm; OpenSSL::Digest(:SHA512).new; end def key; 'key'; end def sign(*); 'fake_sig'; end end -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/