Method: LibGems::Validator#verify_gem
- Defined in:
- lib/libgems/validator.rb
#verify_gem(gem_data) ⇒ Object
Given a gem file’s contents, validates against its own MD5 checksum
- gem_data
- String
-
Contents of the gem file
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/libgems/validator.rb', line 30 def verify_gem(gem_data) raise LibGems::VerificationError, 'empty gem file' if gem_data.size == 0 unless gem_data =~ /MD5SUM/ then return # Don't worry about it...this sucks. Need to fix MD5 stuff for # new format # FIXME end sum_data = gem_data.gsub(/MD5SUM = "([a-z0-9]+)"/, "MD5SUM = \"#{"F" * 32}\"") unless Digest::MD5.hexdigest(sum_data) == $1.to_s then raise LibGems::VerificationError, 'invalid checksum for gem file' end end |