diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-02-07 05:56:53 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-02-07 05:56:53 +0000 |
commit | c27fd3331989b33b9721444c98e77ba367a65270 (patch) | |
tree | 110eac9147bf01a68ea32c0e273e71d40ea13add /lib/rubygems/package.rb | |
parent | 38f04d823150ac6e454d66a39fcfef00e3ad7239 (diff) | |
download | ruby-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.rb | 8 |
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? |