common

package
v3.0.0-...-c5fa6f7 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2026 License: AGPL-3.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// MetricsNamespace is the namespace for all metrics.
	MetricsNamespace = "offensiveboar"
	// MetricsSubsystem is the subsystem for all metrics.
	MetricsSubsystem = "scanner"
)
View Source
const AlphaNumPattern = "0-9a-zA-Z"
View Source
const DefaultResponseTimeout = 5 * time.Second
View Source
const EmailPattern = `` /* 462-byte string literal not displayed */
View Source
const HexPattern = "0-9a-f"
View Source
const RegexPattern = "0-9a-z"
View Source
const SubDomainPattern = `\b([A-Za-z0-9](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?)\b`
View Source
const UUIDPattern = `\b([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\b`
View Source
const UUIDPatternUpperCase = `\b([0-9A-Z]{8}-[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{12})\b`

Variables

View Source
var (
	KB, MB, GB, TB, PB = 1e3, 1e6, 1e9, 1e12, 1e15
)

Functions

func AddStringSliceItem

func AddStringSliceItem(item string, slice *[]string)

func BuildRegex

func BuildRegex(pattern string, specialChar string, length int) string

Custom Regex functions

func BuildRegexJWT

func BuildRegexJWT(firstRange, secondRange, thirdRange string) string

func CancellableRead

func CancellableRead[T any](ctx context.Context, ch <-chan T) (T, error)

CancellableRead blocks on receiving an item from the channel but can be cancelled by the context. If the channel is closed, a ChannelClosedErr is returned. If both the context is cancelled and the channel read would succeed, either operation will be performed randomly, however priority is given to context cancellation.

func CancellableWrite

func CancellableWrite[T any](ctx context.Context, ch chan<- T, item T) error

CancellableWrite blocks on writing the item to the channel but can be cancelled by the context. If both the context is cancelled and the channel write would succeed, either operation will be performed randomly, however priority is given to context cancellation.

func ConstantResponseHttpClient

func ConstantResponseHttpClient(statusCode int, body string) *http.Client

func ExportErrors

func ExportErrors(errs ...error) []error

ExportErrors converts a list of errors into []ExportError.

func GenerateRandomPassword

func GenerateRandomPassword(lower, upper, numeric, special bool, length int) string

GoFakeIt Password generator does not guarantee inclusion of characters. Using a custom random password generator with guaranteed inclusions (atleast) of lower, upper, numeric and special characters

func IsBinary

func IsBinary(filename string) bool

IsBinary returns true if the file extension is in the binaryExtensions list.

func IsDone

func IsDone(ctx context.Context) bool

func PinnedCertPool

func PinnedCertPool() *x509.CertPool

func PinnedRetryableHttpClient

func PinnedRetryableHttpClient() *http.Client

func RandomID

func RandomID(length int) string

RandomID returns a random string of the given length.

func RangeValidation

func RangeValidation(rangeInput string) bool

func Recover

func Recover(ctx context.Context)

Recover handles panics and reports to Sentry.

func RecoverWithExit

func RecoverWithExit(ctx context.Context)

RecoverWithExit handles panics and reports to Sentry before exiting.

func RecoverWithHandler

func RecoverWithHandler(ctx context.Context, callback func(error))

RecoverWithHandler handles panics and reports to Sentry, then turns control over to a provided function. This permits extra reporting in the same scope without re-panicking, as recover() clears the state after it's called. Does NOT block to flush sentry report.

func RemoveStringSliceItem

func RemoveStringSliceItem(item string, slice *[]string)

func ResponseContainsSubstring

func ResponseContainsSubstring(reader io.ReadCloser, target string) (bool, error)

func RetryableHTTPClient

func RetryableHTTPClient(opts ...ClientOption) *http.Client

func RetryableHTTPClientTimeout

func RetryableHTTPClientTimeout(timeOutSeconds int64, opts ...ClientOption) *http.Client

RetryableHTTPClientTimeout returns a new http client with a specified timeout and RoundTripper transport

func SaneHttpClient

func SaneHttpClient() *http.Client

func SaneHttpClientTimeOut

func SaneHttpClientTimeOut(timeout time.Duration) *http.Client

SaneHttpClientTimeOut adds a custom timeout for some scanners

func SkipFile

func SkipFile(filename string) bool

SkipFile returns true if the file extension is in the ignoredExtensions list.

func SliceContainsString

func SliceContainsString(origTargetString string, stringSlice []string, ignoreCase bool) (bool, string, int)

SliceContainsString searches a slice to determine if it contains a specified string. Returns the index of the first match in the slice.

func ToUpperCase

func ToUpperCase(input string) string

func UserAgent

func UserAgent() string

Types

type ChannelClosedErr

type ChannelClosedErr struct{}

ChannelClosedErr indicates that a read was performed from a closed channel.

func (ChannelClosedErr) Error

func (ChannelClosedErr) Error() string

type ClientOption

type ClientOption func(*retryablehttp.Client)

ClientOption configures how we set up the client.

func WithBackoff

func WithBackoff(b retryablehttp.Backoff) ClientOption

WithBackoff allows setting a custom backoff policy.

func WithCheckRetry

func WithCheckRetry(cr retryablehttp.CheckRetry) ClientOption

WithCheckRetry allows setting a custom CheckRetry policy.

func WithMaxRetries

func WithMaxRetries(retries int) ClientOption

WithMaxRetries allows setting a custom maximum number of retries.

func WithRetryWaitMax

func WithRetryWaitMax(wait time.Duration) ClientOption

WithRetryWaitMax allows setting a custom maximum retry wait.

func WithRetryWaitMin

func WithRetryWaitMin(wait time.Duration) ClientOption

WithRetryWaitMin allows setting a custom minimum retry wait.

func WithTimeout

func WithTimeout(timeout time.Duration) ClientOption

WithTimeout allows setting a custom timeout.

type CustomTransport

type CustomTransport struct {
	T http.RoundTripper
}

func NewCustomTransport

func NewCustomTransport(T http.RoundTripper) *CustomTransport

func (*CustomTransport) RoundTrip

func (t *CustomTransport) RoundTrip(req *http.Request) (*http.Response, error)

type ExportError

type ExportError string

ExportError is an implementation of error that can be JSON marshalled. It must be a public exported type for this reason.

func (ExportError) Error

func (e ExportError) Error() string

type FakeTransport

type FakeTransport struct {
	CreateResponse func(req *http.Request) (*http.Response, error)
}

func (FakeTransport) RoundTrip

func (t FakeTransport) RoundTrip(req *http.Request) (*http.Response, error)

type Filter

type Filter struct {
	// contains filtered or unexported fields
}

func FilterEmpty

func FilterEmpty() *Filter

FilterEmpty returns a Filter that always passes.

func FilterFromFiles

func FilterFromFiles(includeFilterPath, excludeFilterPath string) (*Filter, error)

FilterFromFiles creates a Filter using the rules in the provided include and exclude files.

func (*Filter) Pass

func (filter *Filter) Pass(object string) bool

Pass returns true if the include FilterRuleSet matches the pattern and the exclude FilterRuleSet does not match.

func (*Filter) ShouldExclude

func (filter *Filter) ShouldExclude(path string) bool

ShouldExclude return true if any regular expressions in the exclude FilterRuleSet matches the path.

type FilterRuleSet

type FilterRuleSet []regexp.Regexp

func FilterRulesFromFile

func FilterRulesFromFile(source string) (*FilterRuleSet, error)

FilterRulesFromFile loads the list of regular expression filter rules in `source` and creates a FilterRuleSet.

func (*FilterRuleSet) Matches

func (rules *FilterRuleSet) Matches(object string) bool

Matches will return true if any of the regular expressions in the FilterRuleSet match the pattern.

type InstrumentedTransport

type InstrumentedTransport struct {
	T http.RoundTripper
}

func NewInstrumentedTransport

func NewInstrumentedTransport(T http.RoundTripper) *InstrumentedTransport

func (*InstrumentedTransport) RoundTrip

func (t *InstrumentedTransport) RoundTrip(req *http.Request) (*http.Response, error)

type RegexState

type RegexState struct {
	// contains filtered or unexported fields
}

func PasswordRegexCheck

func PasswordRegexCheck(pattern string) RegexState

PasswordRegexCheck constructs an username usernameRegex pattern from a given pattern of excluded characters.

func UsernameRegexCheck

func UsernameRegexCheck(pattern string) RegexState

UsernameRegexCheck constructs an username usernameRegex pattern from a given pattern of excluded characters.

func (RegexState) Matches

func (r RegexState) Matches(data []byte) []string

type Secret

type Secret struct {
	// contains filtered or unexported fields
}

func GetSecret

func GetSecret(ctx context.Context, gcpProject, name string) (secret *Secret, err error)

func GetSecretFromEnv

func GetSecretFromEnv(filename string) (secret *Secret, err error)

func GetTestSecret

func GetTestSecret(ctx context.Context) (secret *Secret, err error)

func (*Secret) MustGetField

func (s *Secret) MustGetField(name string) string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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