models

package
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2025 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package models contains shared data structures used across the application

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CRTEntry

type CRTEntry struct {
	IssuerName     string `json:"issuer_name"`
	CommonName     string `json:"common_name"`
	NameValue      string `json:"name_value"`
	EntryTimestamp string `json:"entry_timestamp"`
	NotBefore      string `json:"not_before"`
	NotAfter       string `json:"not_after"`
	SerialNumber   string `json:"serial_number"`
	ID             int64  `json:"id"`
	IssuerCAID     int    `json:"issuer_ca_id"`
}

CRTEntry represents a single entry from the crt.sh API response

type Config

type Config struct {
	Domains    []string
	Format     string
	Output     string
	Providers  []string
	Timeout    time.Duration
	Concurrent int
	Verbose    bool
	Dig        bool
	Whois      bool
}

Config holds the application configuration

type DNSResult

type DNSResult struct {
	A     []string   `json:"a,omitempty"`
	AAAA  []string   `json:"aaaa,omitempty"`
	MX    []MXRecord `json:"mx,omitempty"`
	TXT   []string   `json:"txt,omitempty"`
	NS    []string   `json:"ns,omitempty"`
	SOA   *SOARecord `json:"soa,omitempty"`
	CNAME string     `json:"cname,omitempty"`
	Error string     `json:"error,omitempty"`
}

DNSResult contains extended DNS query results

type DomainResult

type DomainResult struct {
	Name       string            `json:"name"`
	Subdomains []SubdomainResult `json:"subdomains"`
	Error      string            `json:"error,omitempty"`
}

DomainResult contains all results for a single domain

type HTTPResult

type HTTPResult struct {
	StatusText     string   `json:"status_text"`
	RedirectChain  []string `json:"redirect_chain,omitempty"`
	FinalURL       string   `json:"final_url,omitempty"`
	Error          string   `json:"error,omitempty"`
	ResponseTimeMs int64    `json:"response_time_ms"`
	Status         int      `json:"status"`
}

HTTPResult contains HTTP/HTTPS check results

type MXRecord

type MXRecord struct {
	Host     string `json:"host"`
	Priority uint16 `json:"priority"`
}

MXRecord represents a mail exchanger record

type SOARecord

type SOARecord struct {
	PrimaryNS  string `json:"primary_ns"`
	AdminEmail string `json:"admin_email"`
	Serial     uint32 `json:"serial"`
	Refresh    uint32 `json:"refresh"`
	Retry      uint32 `json:"retry"`
	Expire     uint32 `json:"expire"`
	MinTTL     uint32 `json:"min_ttl"`
}

SOARecord represents a Start of Authority record

type ScanResult

type ScanResult struct {
	Domains   []DomainResult `json:"domains"`
	Summary   *ScanSummary   `json:"summary"`
	Timestamp time.Time      `json:"timestamp"`
}

ScanResult is the top-level result structure

type ScanSummary

type ScanSummary struct {
	TotalDomains    int `json:"total_domains"`
	TotalSubdomains int `json:"total_subdomains"`
	Reachable       int `json:"reachable"`
	Unreachable     int `json:"unreachable"`
}

ScanSummary provides aggregate statistics

type SubdomainResult

type SubdomainResult struct {
	Hostname   string                 `json:"hostname"`
	IPs        []string               `json:"ips"`
	ThirdParty map[string]interface{} `json:"third_party,omitempty"`
	HTTP       *HTTPResult            `json:"http,omitempty"`
	HTTPS      *HTTPResult            `json:"https,omitempty"`
	TLS        *TLSResult             `json:"tls,omitempty"`
	DNS        *DNSResult             `json:"dns,omitempty"`
	WHOIS      *WHOISResult           `json:"whois,omitempty"`
	Error      string                 `json:"error,omitempty"`
	Reachable  bool                   `json:"reachable"`
}

SubdomainResult represents the reconnaissance results for a single subdomain

type TLSResult

type TLSResult struct {
	Issuer    string    `json:"issuer,omitempty"`
	Subject   string    `json:"subject,omitempty"`
	Error     string    `json:"error,omitempty"`
	Version   string    `json:"version,omitempty"`
	Expires   time.Time `json:"expires,omitempty"`
	NotBefore time.Time `json:"not_before,omitempty"`
	Valid     bool      `json:"valid"`
}

TLSResult contains TLS certificate validation results

type WHOISResult

type WHOISResult struct {
	Registrar      string     `json:"registrar,omitempty"`
	RegistrantName string     `json:"registrant_name,omitempty"`
	RegistrantOrg  string     `json:"registrant_org,omitempty"`
	Nameservers    []string   `json:"nameservers,omitempty"`
	Status         []string   `json:"status,omitempty"`
	CreationDate   *time.Time `json:"creation_date,omitempty"`
	ExpirationDate *time.Time `json:"expiration_date,omitempty"`
	UpdatedDate    *time.Time `json:"updated_date,omitempty"`
	Error          string     `json:"error,omitempty"`
}

WHOISResult contains parsed WHOIS information

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL