Method: Inspec::Profile#sha256

Defined in:
lib/inspec/profile.rb

#sha256Type

Calculate this profile’s SHA256 checksum. Includes metadata, dependencies, libraries, data files, and controls.

Returns:

  • (Type)

    description of returned object



490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
# File 'lib/inspec/profile.rb', line 490

def sha256
  # get all dependency checksums
  deps = Hash[locked_dependencies.list.map { |k, v| [k, v.profile.sha256] }]

  res = OpenSSL::Digest::SHA256.new
  files = source_reader.tests.to_a + source_reader.libraries.to_a +
          source_reader.data_files.to_a +
          [['inspec.yml', source_reader..content]] +
          [['inspec.lock.deps', YAML.dump(deps)]]

  files.sort_by { |a| a[0] }
       .map { |f| res << f[0] << "\0" << f[1] << "\0" }

  res.digest.unpack('H*')[0]
end