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