module Puppet::Util::Checksums

A stand-alone module for calculating checksums in a generic way.

Public Instance Methods

checksum?(string) click to toggle source

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
ctime(content) click to toggle source
# File lib/puppet/util/checksums.rb, line 168
def ctime(content)
  ""
end
ctime_file(filename) click to toggle source

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
ctime_stream() click to toggle source
Alias for: mtime_stream
known_checksum_types() click to toggle source

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
md5(content) click to toggle source

Calculate a checksum using Digest::MD5.

# File lib/puppet/util/checksums.rb, line 77
def md5(content)
  Digest::MD5.hexdigest(content)
end
md5_file(filename, lite = false) click to toggle source

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
md5_hex_length() click to toggle source
# File lib/puppet/util/checksums.rb, line 103
def md5_hex_length
  32
end
Also aliased as: md5lite_hex_length
md5_stream() { |digest| ... } click to toggle source
# File lib/puppet/util/checksums.rb, line 97
def md5_stream(&block)
  digest = Digest::MD5.new
  yield digest
  digest.hexdigest
end
Also aliased as: md5lite_stream
md5lite(content) click to toggle source

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
md5lite_file(filename) click to toggle source

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
md5lite_hex_length() click to toggle source
Alias for: md5_hex_length
md5lite_stream(&block) click to toggle source
Alias for: md5_stream
mtime(content) click to toggle source
# File lib/puppet/util/checksums.rb, line 123
def mtime(content)
  ""
end
mtime_file(filename) click to toggle source

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
mtime_stream() { |noop_digest| ... } click to toggle source

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
Also aliased as: ctime_stream
none(content) click to toggle source
# File lib/puppet/util/checksums.rb, line 183
def none(content)
  ""
end
none_file(filename) click to toggle source

Return a “no checksum”

# File lib/puppet/util/checksums.rb, line 173
def none_file(filename)
  ""
end
none_stream() { |noop_digest| ... } click to toggle source
# File lib/puppet/util/checksums.rb, line 177
def none_stream
  noop_digest = FakeChecksum.new
  yield noop_digest
  ""
end
sha1(content) click to toggle source

Calculate a checksum using Digest::SHA1.

# File lib/puppet/util/checksums.rb, line 128
def sha1(content)
  Digest::SHA1.hexdigest(content)
end
sha1_file(filename, lite = false) click to toggle source

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
sha1_hex_length() click to toggle source
# File lib/puppet/util/checksums.rb, line 154
def sha1_hex_length
  40
end
Also aliased as: sha1lite_hex_length
sha1_stream() { |digest| ... } click to toggle source
# File lib/puppet/util/checksums.rb, line 148
def sha1_stream
  digest = Digest::SHA1.new
  yield digest
  digest.hexdigest
end
Also aliased as: sha1lite_stream
sha1lite(content) click to toggle source

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
sha1lite_file(filename) click to toggle source

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
sha1lite_hex_length() click to toggle source
Alias for: sha1_hex_length
sha1lite_stream() click to toggle source
Alias for: sha1_stream
sha256(content) click to toggle source

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
sha256_file(filename, lite = false) click to toggle source
# 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
sha256_hex_length() click to toggle source
# File lib/puppet/util/checksums.rb, line 69
def sha256_hex_length
  64
end
Also aliased as: sha256lite_hex_length
sha256_stream() { |digest| ... } click to toggle source
# File lib/puppet/util/checksums.rb, line 62
def sha256_stream(&block)
  require 'digest/sha2'
  digest = Digest::SHA256.new
  yield digest
  digest.hexdigest
end
Also aliased as: sha256lite_stream
sha256lite(content) click to toggle source
# File lib/puppet/util/checksums.rb, line 47
def sha256lite(content)
  sha256(content[0..511])
end
sha256lite_file(filename) click to toggle source
# File lib/puppet/util/checksums.rb, line 58
def sha256lite_file(filename)
  sha256_file(filename, true)
end
sha256lite_hex_length() click to toggle source
Alias for: sha256_hex_length
sha256lite_stream(&block) click to toggle source
Alias for: sha256_stream
sumdata(checksum) click to toggle source

Strip the checksum type from an existing checksum

# File lib/puppet/util/checksums.rb, line 32
def sumdata(checksum)
  checksum =~ /^\{(\w+)\}(.+)/ ? $2 : nil
end
sumtype(checksum) click to toggle source

Strip the checksum type from an existing checksum

# File lib/puppet/util/checksums.rb, line 37
def sumtype(checksum)
  checksum =~ /^\{(\w+)\}/ ? $1 : nil
end