Sha256: eaaab7cccef3769f2f2f5e21c208275a3d8934d3862ebf80d2ac81770d57fd36

Contents?: true

Size: 1.01 KB

Versions: 13

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require "crtsh"

module Mihari
  module Analyzers
    class Crtsh < Base
      attr_reader :title
      attr_reader :description
      attr_reader :query
      attr_reader :tags
      attr_reader :exclude_expired

      def initialize(query, title: nil, description: nil, tags: [], exclude_expired: nil)
        super()

        @query = query
        @title = title || "crt.sh lookup"
        @description = description || "query = #{query}"
        @tags = tags

        @exclude_expired = exclude_expired.nil? ? true : exclude_expired
      end

      def artifacts
        results = search
        name_values = results.map { |result| result.dig("name_value") }.compact
        name_values.map(&:lines).flatten.uniq.map(&:chomp)
      end

      private

      def api
        @api ||= ::Crtsh::API.new
      end

      def search
        exclude = exclude_expired ? "expired" : nil
        api.search(query, exclude: exclude)
      rescue ::Crtsh::Error => _e
        []
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
mihari-1.4.1 lib/mihari/analyzers/crtsh.rb
mihari-1.4.0 lib/mihari/analyzers/crtsh.rb
mihari-1.3.2 lib/mihari/analyzers/crtsh.rb
mihari-1.3.1 lib/mihari/analyzers/crtsh.rb
mihari-1.3.0 lib/mihari/analyzers/crtsh.rb
mihari-1.2.1 lib/mihari/analyzers/crtsh.rb
mihari-1.2.0 lib/mihari/analyzers/crtsh.rb
mihari-1.1.1 lib/mihari/analyzers/crtsh.rb
mihari-1.1.0 lib/mihari/analyzers/crtsh.rb
mihari-1.0.1 lib/mihari/analyzers/crtsh.rb
mihari-1.0.0 lib/mihari/analyzers/crtsh.rb
mihari-0.17.5 lib/mihari/analyzers/crtsh.rb
mihari-0.17.4 lib/mihari/analyzers/crtsh.rb