class AndroidKeyAttestation::AuthorizationList

def all_applications

def all_applications
  find_boolean(ALL_APPLICATIONS_TAG)
end

def creation_date

def creation_date
  find_time_milliseconds(CREATION_DATE_TIME_TAG)
end

def find_boolean(tag)

def find_boolean(tag)
  find_by_tag(tag)&.value || false
end

def find_by_tag(tag)

def find_by_tag(tag)
  sequence.detect { |data| data.tag == tag }
end

def find_optional_integer(tag)

def find_optional_integer(tag)
  find_by_tag(tag)&.value&.at(0)&.value&.to_i
end

def find_optional_integer_set(tag)

def find_optional_integer_set(tag)
  value = find_by_tag(tag)&.value&.at(0)&.value
  value&.map { |asn1_int| asn1_int.value.to_i }
end

def find_time_milliseconds(tag)

def find_time_milliseconds(tag)
  value = find_by_tag(tag)&.value&.at(0)&.value
  Time.at(value.to_i / 1000) if value
end

def initialize(sequence)

def initialize(sequence)
  @sequence = sequence
end

def origin

def origin
  integer = find_optional_integer(ORIGIN_TAG)
  ORIGIN_ENUM.fetch(integer) if integer
end

def purpose

def purpose
  integers = find_optional_integer_set(PURPOSE_TAG)
  integers&.map { |i| PURPOSE_ENUM.fetch(i) }
end