Class: Mihari::Analyzers::Censys

Inherits:
Base show all
Defined in:
lib/mihari/analyzers/censys.rb

Overview

Censys analyzer

Constant Summary

Constants included from Concerns::Retriable

Concerns::Retriable::DEFAULT_CONDITION, Concerns::Retriable::RETRIABLE_ERRORS

Instance Attribute Summary collapse

Attributes inherited from Base

#query

Attributes inherited from Mihari::Actor

#options

Instance Method Summary collapse

Methods inherited from Base

#call, from_params, #ignore_error?, inherited, #normalized_artifacts, #pagination_interval, #pagination_limit, #parallel?, #result, #truncated_query

Methods inherited from Mihari::Actor

#call, configuration_keys, key, key_aliases, keys, #result, #retry_exponential_backoff, #retry_interval, #retry_times, #timeout, type, #validate_configuration!

Methods included from Concerns::Retriable

#retry_on_error

Methods included from Concerns::Configurable

#configuration_keys?

Constructor Details

#initialize(query, options: nil, id: nil, secret: nil) ⇒ Censys

Returns a new instance of Censys.

Parameters:

  • query (String)
  • options (hash, nil) (defaults to: nil)
  • id (String, nil) (defaults to: nil)
  • secret (String, nil) (defaults to: nil)


21
22
23
24
25
26
# File 'lib/mihari/analyzers/censys.rb', line 21

def initialize(query, options: nil, id: nil, secret: nil)
  super(query, options:)

  @id = id || Mihari.config.censys_id
  @secret = secret || Mihari.config.censys_secret
end

Instance Attribute Details

#idString? (readonly)

Returns:

  • (String, nil)


10
11
12
# File 'lib/mihari/analyzers/censys.rb', line 10

def id
  @id
end

#secretString? (readonly)

Returns:

  • (String, nil)


13
14
15
# File 'lib/mihari/analyzers/censys.rb', line 13

def secret
  @secret
end

Instance Method Details

#artifactsArray<Mihari::Models::Artifact>

Returns:



31
32
33
34
35
# File 'lib/mihari/analyzers/censys.rb', line 31

def artifacts
  client.search_with_pagination(query, pagination_limit:).map do |res|
    res.result.artifacts
  end.flatten.uniq(&:data)
end

#configured?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/mihari/analyzers/censys.rb', line 40

def configured?
  configuration_keys? || (id? && secret?)
end