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

ruby-changes:68446

From: Hiroshi <ko1@a...>
Date: Thu, 14 Oct 2021 13:32:40 +0900 (JST)
Subject: [ruby-changes:68446] 3265af2f9e (master): separate pure ruby location under the digest/* extensions

https://git.ruby-lang.org/ruby.git/commit/?id=3265af2f9e

From 3265af2f9e5ff9355c5e1ed90aeb0497d10f611e Mon Sep 17 00:00:00 2001
From: Hiroshi SHIBATA <hsbt@r...>
Date: Thu, 14 Oct 2021 13:31:45 +0900
Subject: separate pure ruby location under the digest/* extensions

---
 ext/digest/lib/digest/sha2.rb             | 142 ------------------------------
 ext/digest/lib/digest/sha2/loader.rb      |   3 -
 ext/digest/sha2/lib/digest/sha2.rb        | 142 ++++++++++++++++++++++++++++++
 ext/digest/sha2/lib/digest/sha2/loader.rb |   3 +
 tool/sync_default_gems.rb                 |   4 +-
 5 files changed, 148 insertions(+), 146 deletions(-)
 delete mode 100644 ext/digest/lib/digest/sha2.rb
 delete mode 100644 ext/digest/lib/digest/sha2/loader.rb
 create mode 100644 ext/digest/sha2/lib/digest/sha2.rb
 create mode 100644 ext/digest/sha2/lib/digest/sha2/loader.rb

diff --git a/ext/digest/lib/digest/sha2.rb b/ext/digest/lib/digest/sha2.rb
deleted file mode 100644
index f17593a206..0000000000
--- a/ext/digest/lib/digest/sha2.rb
+++ /dev/null
@@ -1,142 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-# frozen_string_literal: false
-#--
-# sha2.rb - defines Digest::SHA2 class which wraps up the SHA256,
-#           SHA384, and SHA512 classes.
-#++
-# Copyright (c) 2006 Akinori MUSHA <knu@i...>
-#
-# All rights reserved.  You can redistribute and/or modify it under the same
-# terms as Ruby.
-#
-#   $Id$
-
-require 'digest'
-require 'digest/sha2/loader'
-
-module Digest
-  #
-  # A meta digest provider class for SHA256, SHA384 and SHA512.
-  #
-  # FIPS 180-2 describes SHA2 family of digest algorithms. It defines
-  # three algorithms:
-  # * one which works on chunks of 512 bits and returns a 256-bit
-  #   digest (SHA256),
-  # * one which works on chunks of 1024 bits and returns a 384-bit
-  #   digest (SHA384),
-  # * and one which works on chunks of 1024 bits and returns a 512-bit
-  #   digest (SHA512).
-  #
-  # ==Examples
-  #  require 'digest'
-  #
-  #  # Compute a complete digest
-  #  Digest::SHA2.hexdigest 'abc'          # => "ba7816bf8..."
-  #  Digest::SHA2.new(256).hexdigest 'abc' # => "ba7816bf8..."
-  #  Digest::SHA256.hexdigest 'abc'        # => "ba7816bf8..."
-  #
-  #  Digest::SHA2.new(384).hexdigest 'abc' # => "cb00753f4..."
-  #  Digest::SHA384.hexdigest 'abc'        # => "cb00753f4..."
-  #
-  #  Digest::SHA2.new(512).hexdigest 'abc' # => "ddaf35a19..."
-  #  Digest::SHA512.hexdigest 'abc'        # => "ddaf35a19..."
-  #
-  #  # Compute digest by chunks
-  #  sha2 = Digest::SHA2.new               # =>#<Digest::SHA2:256>
-  #  sha2.update "ab"
-  #  sha2 << "c"                           # alias for #update
-  #  sha2.hexdigest                        # => "ba7816bf8..."
-  #
-  #  # Use the same object to compute another digest
-  #  sha2.reset
-  #  sha2 << "message"
-  #  sha2.hexdigest                        # => "ab530a13e..."
-  #
-  class SHA2 < Digest::Class
-    # call-seq:
-    #   Digest::SHA2.new(bitlen = 256) -> digest_obj
-    #
-    # Create a new SHA2 hash object with a given bit length.
-    #
-    # Valid bit lengths are 256, 384 and 512.
-    def initialize(bitlen = 256)
-      case bitlen
-      when 256
-        @sha2 = Digest::SHA256.new
-      when 384
-        @sha2 = Digest::SHA384.new
-      when 512
-        @sha2 = Digest::SHA512.new
-      else
-        raise ArgumentError, "unsupported bit length: %s" % bitlen.inspect
-      end
-      @bitlen = bitlen
-    end
-
-    # call-seq:
-    #   digest_obj.reset -> digest_obj
-    #
-    # Reset the digest to the initial state and return self.
-    def reset
-      @sha2.reset
-      self
-    end
-
-    # call-seq:
-    #   digest_obj.update(string) -> digest_obj
-    #   digest_obj << string -> digest_obj
-    #
-    # Update the digest using a given _string_ and return self.
-    def update(str)
-      @sha2.update(str)
-      self
-    end
-    alias << update
-
-    def finish # :nodoc:
-      @sha2.digest!
-    end
-    private :finish
-
-
-    # call-seq:
-    #   digest_obj.block_length -> Integer
-    #
-    # Return the block length of the digest in bytes.
-    #
-    #   Digest::SHA256.new.block_length * 8
-    #   # => 512
-    #   Digest::SHA384.new.block_length * 8
-    #   # => 1024
-    #   Digest::SHA512.new.block_length * 8
-    #   # => 1024
-    def block_length
-      @sha2.block_length
-    end
-
-    # call-seq:
-    #   digest_obj.digest_length -> Integer
-    #
-    # Return the length of the hash value (the digest) in bytes.
-    #
-    #   Digest::SHA256.new.digest_length * 8
-    #   # => 256
-    #   Digest::SHA384.new.digest_length * 8
-    #   # => 384
-    #   Digest::SHA512.new.digest_length * 8
-    #   # => 512
-    #
-    # For example, digests produced by Digest::SHA256 will always be 32 bytes
-    # (256 bits) in size.
-    def digest_length
-      @sha2.digest_length
-    end
-
-    def initialize_copy(other) # :nodoc:
-      @sha2 = other.instance_eval { @sha2.clone }
-    end
-
-    def inspect # :nodoc:
-      "#<%s:%d %s>" % [self.class.name, @bitlen, hexdigest]
-    end
-  end
-end
diff --git a/ext/digest/lib/digest/sha2/loader.rb b/ext/digest/lib/digest/sha2/loader.rb
deleted file mode 100644
index 7d6d04a59c..0000000000
--- a/ext/digest/lib/digest/sha2/loader.rb
+++ /dev/null
@@ -1,3 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-# frozen_string_literal: true
-
-require 'digest/sha2.so'
diff --git a/ext/digest/sha2/lib/digest/sha2.rb b/ext/digest/sha2/lib/digest/sha2.rb
new file mode 100644
index 0000000000..f17593a206
--- /dev/null
+++ b/ext/digest/sha2/lib/digest/sha2.rb
@@ -0,0 +1,142 @@ https://github.com/ruby/ruby/blob/trunk/ext/digest/sha2/lib/digest/sha2.rb#L1
+# frozen_string_literal: false
+#--
+# sha2.rb - defines Digest::SHA2 class which wraps up the SHA256,
+#           SHA384, and SHA512 classes.
+#++
+# Copyright (c) 2006 Akinori MUSHA <knu@i...>
+#
+# All rights reserved.  You can redistribute and/or modify it under the same
+# terms as Ruby.
+#
+#   $Id$
+
+require 'digest'
+require 'digest/sha2/loader'
+
+module Digest
+  #
+  # A meta digest provider class for SHA256, SHA384 and SHA512.
+  #
+  # FIPS 180-2 describes SHA2 family of digest algorithms. It defines
+  # three algorithms:
+  # * one which works on chunks of 512 bits and returns a 256-bit
+  #   digest (SHA256),
+  # * one which works on chunks of 1024 bits and returns a 384-bit
+  #   digest (SHA384),
+  # * and one which works on chunks of 1024 bits and returns a 512-bit
+  #   digest (SHA512).
+  #
+  # ==Examples
+  #  require 'digest'
+  #
+  #  # Compute a complete digest
+  #  Digest::SHA2.hexdigest 'abc'          # => "ba7816bf8..."
+  #  Digest::SHA2.new(256).hexdigest 'abc' # => "ba7816bf8..."
+  #  Digest::SHA256.hexdigest 'abc'        # => "ba7816bf8..."
+  #
+  #  Digest::SHA2.new(384).hexdigest 'abc' # => "cb00753f4..."
+  #  Digest::SHA384.hexdigest 'abc'        # => "cb00753f4..."
+  #
+  #  Digest::SHA2.new(512).hexdigest 'abc' # => "ddaf35a19..."
+  #  Digest::SHA512.hexdigest 'abc'        # => "ddaf35a19..."
+  #
+  #  # Compute digest by chunks
+  #  sha2 = Digest::SHA2.new               # =>#<Digest::SHA2:256>
+  #  sha2.update "ab"
+  #  sha2 << "c"                           # alias for #update
+  #  sha2.hexdigest                        # => "ba7816bf8..."
+  #
+  #  # Use the same object to compute another digest
+  #  sha2.reset
+  #  sha2 << "message"
+  #  sha2.hexdigest                        # => "ab530a13e..."
+  #
+  class SHA2 < Digest::Class
+    # call-seq:
+    #   Digest::SHA2.new(bitlen = 256) -> digest_obj
+    #
+    # Create a new SHA2 hash object with a given bit length.
+    #
+    # Valid bit lengths are 256, 384 and 512.
+    def initialize(bitlen = 256)
+      case bitlen
+      when 256
+        @sha2 = Digest::SHA256.new
+      when 384
+        @sha2 = Digest::SHA384.new
+      when 512
+        @sha2 = Digest::SHA512.new
+      else
+        raise ArgumentError, "unsupported bit length: %s" % bitlen.inspect
+      end
+      @bitlen = bitlen
+    end
+
+    # call-seq:
+    #   digest_obj.reset -> digest_obj
+    #
+    # Reset the digest to the initial state and return self.
+    def reset
+      @sha2.reset
+      self
+    end
+
+    # call-seq:
+    #   digest_obj.update(string) -> digest_obj
+    #   digest_obj << string -> digest_obj
+    #
+    # Update the digest using a given _string_ and return self.
+    def update(str)
+      @sha2.update(str)
+      self
+    end
+    alias << update
+
+    def finish # :nodoc:
+      @sha2.digest!
+    end
+    private :finish
+
+
+    # call-seq:
+    #   digest_obj.block_length -> Integer
+    #
+    # Return the block length of the digest in bytes.
+    #
+    #   Digest::SHA256.new.block_length * 8
+    #   # => 512
+    #   Digest::SHA384.new.block_length * 8
+    #   # => 1024
+    #   Digest::SHA512.new.block_length * 8
+    #   # => 1024
+    def block_length
+      @sha2.block_length
+    end
+
+    # call-seq:
+    #   digest_obj.digest_length -> Integer
+    #
+    # Return the length of the hash value (the digest) in bytes.
+    #
+    #   Digest::SHA256.new.digest_length * 8
+    #   # => 256
+    #   Digest::SHA384.new.digest_length * 8
+    #   # => 384
+    #   Digest::SHA512.new.digest_length * 8
+    #   # => 512
+    #
+    # For example, digests produced by Digest::SHA256 will always be 32 bytes
+    # (256 bits) in size.
+    def digest_length
+      @sha2.digest_length
+    end
+
+    def initialize_copy(other) # :nodoc:
+      @sha2 = other.instance_eval { @sha2.clone }
+    end
+
+    def inspect # :nodoc:
+      "#<%s:%d %s>" % [self.class.name, @bitlen, hexdigest]
+    end
+  end
+end
diff --git a/ext/digest/sha2/lib/digest/sha2/loader.rb b/ext/digest/sha2/lib/digest/sha2/loader.rb
new file mode 100644
index 0000000000..7d6d04a59c
--- /dev/null
+++ b/ext/digest/sha2/lib/digest/sha2/loader.rb
@@ -0,0 +1,3 @@ https://github.com/ruby/ruby/blob/trunk/ext/digest/sha2/lib/digest/sha2/loader.rb#L1
+# frozen_string_li (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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