aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/package.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-07 05:56:53 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-07 05:56:53 +0000
commitc27fd3331989b33b9721444c98e77ba367a65270 (patch)
tree110eac9147bf01a68ea32c0e273e71d40ea13add /lib/rubygems/package.rb
parent38f04d823150ac6e454d66a39fcfef00e3ad7239 (diff)
downloadruby-c27fd3331989b33b9721444c98e77ba367a65270.tar.gz
* lib/rubygems/package.rb: Ensure digests are generated for signing.
* test/rubygems/test_gem_package.rb: Test for the above. * lib/rubygems/security/policy.rb: Ensure digests are present when verifying a gem and match the number of signatures bidirectionally. * test/rubygems/test_gem_security_policy.rb: Test for the above. * lib/rubygems.rb: Documentation improvements (by zzak) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/package.rb')
-rw-r--r--lib/rubygems/package.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/rubygems/package.rb b/lib/rubygems/package.rb
index c662da2a55..82abcd0c6f 100644
--- a/lib/rubygems/package.rb
+++ b/lib/rubygems/package.rb
@@ -277,9 +277,13 @@ EOM
# the security policy.
def digest entry # :nodoc:
- return unless @checksums
+ algorithms = if @checksums then
+ @checksums.keys
+ else
+ [Gem::Security::DIGEST_NAME]
+ end
- @checksums.each_key do |algorithm|
+ algorithms.each do |algorithm|
digester = OpenSSL::Digest.new algorithm
digester << entry.read(16384) until entry.eof?