Method: Gem::Package#verify_checksums

Defined in:
lib/rubygems/package.rb

#verify_checksums(digests, checksums) ⇒ Object

Verifies the checksums against the digests. This check is not cryptographically secure. Missing checksums are ignored.



642
643
644
645
646
647
648
649
650
651
652
653
654
655
# File 'lib/rubygems/package.rb', line 642

def verify_checksums(digests, checksums) # :nodoc:
  return unless checksums

  checksums.sort.each do |algorithm, gem_digests|
    gem_digests.sort.each do |file_name, gem_hexdigest|
      computed_digest = digests[algorithm][file_name]

      unless computed_digest.hexdigest == gem_hexdigest
        raise Gem::Package::FormatError.new \
          "#{algorithm} checksum mismatch for #{file_name}", @gem
      end
    end
  end
end