Class: Sigstore::TUF::Roles
- Inherits:
-
Object
- Object
- Sigstore::TUF::Roles
- Includes:
- Enumerable
- Defined in:
- lib/sigstore/tuf/roles.rb
Instance Method Summary collapse
- #each ⇒ Object
- #fetch(name) ⇒ Object
- #for_target(target_path) ⇒ Object
-
#initialize(data, keys) ⇒ Roles
constructor
A new instance of Roles.
- #verify_delegate(type, bytes, signatures) ⇒ Object
Constructor Details
#initialize(data, keys) ⇒ Roles
Returns a new instance of Roles.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/sigstore/tuf/roles.rb', line 21 def initialize(data, keys) @roles = case data when Hash # root roles data.to_h do |role_name, role_data| role_data = role_data.merge("name" => role_name, "paths" => nil) role = Role.new(role_data, keys) [role.name, role] end when Array # targets roles data.to_h do |role_data| role = Role.new(role_data, keys) [role.name, role] end else raise ArgumentError, "Unexpected data: #{data.inspect}" end end |
Instance Method Details
#each ⇒ Object
40 41 42 |
# File 'lib/sigstore/tuf/roles.rb', line 40 def each(&) @roles.each(&) end |
#fetch(name) ⇒ Object
49 50 51 |
# File 'lib/sigstore/tuf/roles.rb', line 49 def fetch(name) @roles.fetch(name) end |
#for_target(target_path) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/sigstore/tuf/roles.rb', line 53 def for_target(target_path) select do |_, role| # TODO: this needs to be tested role.paths.any? { |path| File.fnmatch?(path, target_path, File::FNM_PATHNAME) } end.to_h end |
#verify_delegate(type, bytes, signatures) ⇒ Object
44 45 46 47 |
# File 'lib/sigstore/tuf/roles.rb', line 44 def verify_delegate(type, bytes, signatures) role = fetch(type) role.verify_delegate(type, bytes, signatures) end |