A stand-alone module for calculating checksums in a generic way.
Is the provided string a checksum?
# File lib/puppet/util/checksums.rb, line 26 def checksum?(string) # 'sha256lite'.length == 10 string =~ /^\{(\w{3,10})\}\S+/ end
# File lib/puppet/util/checksums.rb, line 168 def ctime(content) "" end
Return the :ctime of a file.
# File lib/puppet/util/checksums.rb, line 162 def ctime_file(filename) Puppet::FileSystem.stat(filename).send(:ctime) end
It’s not a good idea to use some of these in some contexts: for example, I wouldn’t try bucketing a file using the :none checksum type.
# File lib/puppet/util/checksums.rb, line 14 def known_checksum_types [:sha256, :sha256lite, :md5, :md5lite, :sha1, :sha1lite, :mtime, :ctime, :none] end
Calculate a checksum using Digest::MD5.
# File lib/puppet/util/checksums.rb, line 77 def md5(content) Digest::MD5.hexdigest(content) end
Calculate a checksum of a file’s content using Digest::MD5.
# File lib/puppet/util/checksums.rb, line 87 def md5_file(filename, lite = false) digest = Digest::MD5.new checksum_file(digest, filename, lite) end
# File lib/puppet/util/checksums.rb, line 103 def md5_hex_length 32 end
# File lib/puppet/util/checksums.rb, line 97 def md5_stream(&block) digest = Digest::MD5.new yield digest digest.hexdigest end
Calculate a checksum of the first 500 chars of the content using Digest::MD5.
# File lib/puppet/util/checksums.rb, line 82 def md5lite(content) md5(content[0..511]) end
Calculate a checksum of the first 500 chars of a file’s content using Digest::MD5.
# File lib/puppet/util/checksums.rb, line 93 def md5lite_file(filename) md5_file(filename, true) end
# File lib/puppet/util/checksums.rb, line 123 def mtime(content) "" end
Return the :mtime timestamp of a file.
# File lib/puppet/util/checksums.rb, line 111 def mtime_file(filename) Puppet::FileSystem.stat(filename).send(:mtime) end
by definition this doesn’t exist but we still need to execute the block given
# File lib/puppet/util/checksums.rb, line 117 def mtime_stream noop_digest = FakeChecksum.new yield noop_digest nil end
# File lib/puppet/util/checksums.rb, line 183 def none(content) "" end
Return a “no checksum”
# File lib/puppet/util/checksums.rb, line 173 def none_file(filename) "" end
# File lib/puppet/util/checksums.rb, line 177 def none_stream noop_digest = FakeChecksum.new yield noop_digest "" end
Calculate a checksum using Digest::SHA1.
# File lib/puppet/util/checksums.rb, line 128 def sha1(content) Digest::SHA1.hexdigest(content) end
Calculate a checksum of a file’s content using Digest::SHA1.
# File lib/puppet/util/checksums.rb, line 138 def sha1_file(filename, lite = false) digest = Digest::SHA1.new checksum_file(digest, filename, lite) end
# File lib/puppet/util/checksums.rb, line 154 def sha1_hex_length 40 end
# File lib/puppet/util/checksums.rb, line 148 def sha1_stream digest = Digest::SHA1.new yield digest digest.hexdigest end
Calculate a checksum of the first 500 chars of the content using Digest::SHA1.
# File lib/puppet/util/checksums.rb, line 133 def sha1lite(content) sha1(content[0..511]) end
Calculate a checksum of the first 500 chars of a file’s content using Digest::SHA1.
# File lib/puppet/util/checksums.rb, line 144 def sha1lite_file(filename) sha1_file(filename, true) end
Calculate a checksum using Digest::SHA256.
# File lib/puppet/util/checksums.rb, line 42 def sha256(content) require 'digest/sha2' Digest::SHA256.hexdigest(content) end
# File lib/puppet/util/checksums.rb, line 51 def sha256_file(filename, lite = false) require 'digest/sha2' digest = Digest::SHA256.new checksum_file(digest, filename, lite) end
# File lib/puppet/util/checksums.rb, line 69 def sha256_hex_length 64 end
# File lib/puppet/util/checksums.rb, line 62 def sha256_stream(&block) require 'digest/sha2' digest = Digest::SHA256.new yield digest digest.hexdigest end
# File lib/puppet/util/checksums.rb, line 47 def sha256lite(content) sha256(content[0..511]) end
# File lib/puppet/util/checksums.rb, line 58 def sha256lite_file(filename) sha256_file(filename, true) end
Strip the checksum type from an existing checksum
# File lib/puppet/util/checksums.rb, line 32 def sumdata(checksum) checksum =~ /^\{(\w+)\}(.+)/ ? $2 : nil end
Strip the checksum type from an existing checksum
# File lib/puppet/util/checksums.rb, line 37 def sumtype(checksum) checksum =~ /^\{(\w+)\}/ ? $1 : nil end