diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2016-08-29 13:22:58 -0500 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2016-08-29 15:14:05 -0500 |
commit | 0e24388a0065b15fc0ebc2bf8ae94a9b1de0114f (patch) | |
tree | b219a94e3c5ed430160b32bb82fd01d57b5b6ae8 | |
parent | 7a955ba5d763baed9106e07baa61f13d26628208 (diff) | |
download | bundler-seg-fix-1-8.tar.gz |
[GemInstaller] Support base64 digests on ruby 1.8.7seg-fix-1-8
-rw-r--r-- | lib/bundler/rubygems_gem_installer.rb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/bundler/rubygems_gem_installer.rb b/lib/bundler/rubygems_gem_installer.rb index 0aa9fd91d6..28ad988b94 100644 --- a/lib/bundler/rubygems_gem_installer.rb +++ b/lib/bundler/rubygems_gem_installer.rb @@ -28,7 +28,7 @@ module Bundler digest = Digest::SHA256.new digest << io.read(16_384) until io.eof? io.rewind - digest.send(checksum_type(checksum)) + send(checksum_type(checksum), digest) end unless digest == checksum raise SecurityError, @@ -48,5 +48,17 @@ module Bundler else raise InstallError, "The given checksum for #{spec.full_name} (#{checksum.inspect}) is not a valid SHA256 hexdigest nor base64digest" end end + + def hexdigest!(digest) + digest.hexdigest! + end + + def base64digest!(digest) + if digest.respond_to?(:base64digest!) + digest.base64digest! + else + [digest.digest!].pack("m0") + end + end end end |