[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]