Sha256: a39756e4a9dadd17b4b242a07883a2220058fcdc1e4e4952bdbd8c9920ff21f4
Contents?: true
Size: 1.1 KB
Versions: 13
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true module Mihari module Analyzers # # crt.sh analyzer # class Crtsh < Base # @return [Boolean] attr_reader :exclude_expired # @return [String, nil] attr_reader :match # # @param [String] query # @param [Hash, nil] options # @param [Bool] exclude_expired # @param [String, nil] match # def initialize(query, options: nil, exclude_expired: true, match: nil) super(query, options: options) @exclude_expired = exclude_expired @match = match end def artifacts exclude = exclude_expired ? "expired" : nil client.search(query, exclude: exclude, match: match).map do |result| values = result["name_value"].to_s.lines.map(&:chomp).reject { |value| value.starts_with?("*.") } values.map { |value| Models::Artifact.new(data: value, metadata: result) } end.flatten end private # # @return [Mihari::Clients::Crtsh] # def client Mihari::Clients::Crtsh.new(timeout: timeout) end end end end
Version data entries
13 entries across 13 versions & 1 rubygems