Skip to content

Commit f83fdbe

Browse files
Mzack9999dependabot[bot]
authored andcommitted
partial migration to errkit
1 parent 8aee6ec commit f83fdbe

File tree

15 files changed

+118
-116
lines changed

15 files changed

+118
-116
lines changed

cmd/tlsx/main.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import (
99
"github.com/projectdiscovery/tlsx/internal/runner"
1010
"github.com/projectdiscovery/tlsx/pkg/tlsx/clients"
1111
"github.com/projectdiscovery/tlsx/pkg/tlsx/openssl"
12-
errorutils "github.com/projectdiscovery/utils/errors"
12+
"github.com/projectdiscovery/utils/errkit"
13+
errorutils "github.com/projectdiscovery/utils/errors" //nolint
1314
fileutil "github.com/projectdiscovery/utils/file"
1415
)
1516

@@ -26,20 +27,20 @@ func main() {
2627

2728
func process() error {
2829
if err := readFlags(); err != nil {
29-
return errorutils.NewWithErr(err).Msgf("could not read flags")
30+
return errkit.Wrapf(err, "could not read flags")
3031
}
3132
runner, err := runner.New(options)
3233
if err != nil {
33-
return errorutils.NewWithErr(err).Msgf("could not create runner")
34+
return errkit.Wrapf(err, "could not create runner")
3435
}
3536
if runner == nil {
3637
return nil
3738
}
3839
if err := runner.Execute(); err != nil {
39-
return errorutils.NewWithErr(err).Msgf("could not execute runner")
40+
return errkit.Wrapf(err, "could not execute runner")
4041
}
4142
if err := runner.Close(); err != nil {
42-
return errorutils.NewWithErr(err).Msgf("could not close runner")
43+
return errkit.Wrapf(err, "could not close runner")
4344
}
4445
return nil
4546
}
@@ -154,13 +155,13 @@ func readFlags(args ...string) error {
154155

155156
err := flagSet.Parse(args...)
156157
if err != nil {
157-
return errorutils.NewWithErr(err).Msgf("could not parse flags")
158+
return errkit.Wrapf(err, "could not parse flags")
158159
}
159160
hasStdin := fileutil.HasStdin()
160161

161162
// Validation: CT logs mode and input mode cannot be used together
162163
if options.CTLogs && (len(options.Inputs) > 0 || options.InputList != "" || hasStdin) {
163-
return errorutils.NewWithTag("flags", "CT logs mode (-ctl) and input mode (-u/-l/stdin) cannot be used together.")
164+
return errorutils.NewWithTag("flags", "CT logs mode (-ctl) and input mode (-u/-l/stdin) cannot be used together.") //nolint
164165
}
165166

166167
// Enable CT logs mode by default if no input is provided
@@ -180,7 +181,7 @@ func readFlags(args ...string) error {
180181

181182
if cfgFile != "" {
182183
if err := flagSet.MergeConfigFile(cfgFile); err != nil {
183-
return errorutils.NewWithErr(err).Msgf("could not read config file")
184+
return errkit.Wrapf(err, "could not read config file")
184185
}
185186
}
186187
return nil
@@ -190,6 +191,6 @@ func init() {
190191
// Feature: Debug Mode
191192
// Errors will include stacktrace when debug mode is enabled
192193
if os.Getenv("DEBUG") != "" {
193-
errorutils.ShowStackTrace = true
194+
errkit.EnableTrace = true
194195
}
195196
}

internal/runner/banner.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55

66
"github.com/projectdiscovery/gologger"
77
"github.com/projectdiscovery/gologger/levels"
8-
errorutils "github.com/projectdiscovery/utils/errors"
8+
"github.com/projectdiscovery/utils/errkit"
99
fileutil "github.com/projectdiscovery/utils/file"
1010
updateutils "github.com/projectdiscovery/utils/update"
1111
)
@@ -33,10 +33,10 @@ func (r *Runner) validateOptions() error {
3333
}
3434
probeSpecified := r.options.SO || r.options.TLSVersion || r.options.Cipher || r.options.Expired || r.options.SelfSigned || r.options.Hash != "" || r.options.Jarm || r.options.MisMatched || r.options.Revoked || r.options.WildcardCertCheck
3535
if r.options.RespOnly && probeSpecified {
36-
return errorutils.New("resp-only flag can only be used with san and cn flags")
36+
return errkit.New("resp-only flag can only be used with san and cn flags")
3737
}
3838
if (r.options.SAN || r.options.CN) && probeSpecified {
39-
return errorutils.New("san or cn flag cannot be used with other probes")
39+
return errkit.New("san or cn flag cannot be used with other probes")
4040
}
4141

4242
// Enable CT logs mode by default if no input is provided
@@ -47,15 +47,15 @@ func (r *Runner) validateOptions() error {
4747

4848
// Check if we still have no input after auto-enabling CT logs
4949
if !r.options.CTLogs && !r.hasStdin && len(r.options.Inputs) == 0 && r.options.InputList == "" {
50-
return errorutils.New("no input provided for enumeration")
50+
return errkit.New("no input provided for enumeration")
5151
}
5252

5353
if len(r.options.Ports) == 0 {
5454
// Append port 443 for default ports
5555
r.options.Ports = append(r.options.Ports, "443")
5656
}
5757
if r.options.CertsOnly && (r.options.ScanMode != "ztls" && r.options.ScanMode != "auto") {
58-
return errorutils.New("scan-mode must be ztls or auto with certs-only option")
58+
return errkit.New("scan-mode must be ztls or auto with certs-only option")
5959
}
6060
if r.options.CertsOnly || r.options.Ja3 || r.options.Ja3s {
6161
r.options.ScanMode = "ztls" // force setting ztls when using certs-only

internal/runner/runner.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
"github.com/projectdiscovery/tlsx/pkg/tlsx"
2727
"github.com/projectdiscovery/tlsx/pkg/tlsx/clients"
2828
"github.com/projectdiscovery/tlsx/pkg/tlsx/openssl"
29-
errorutil "github.com/projectdiscovery/utils/errors"
29+
"github.com/projectdiscovery/utils/errkit" //nolint
3030
iputil "github.com/projectdiscovery/utils/ip"
3131
sliceutil "github.com/projectdiscovery/utils/slice"
3232
updateutils "github.com/projectdiscovery/utils/update"
@@ -79,7 +79,7 @@ func New(options *clients.Options) (*Runner, error) {
7979

8080
runner := &Runner{options: options}
8181
if err := runner.validateOptions(); err != nil {
82-
return nil, errorutil.NewWithErr(err).Msgf("could not validate options")
82+
return nil, errkit.Wrap(err, "could not validate options")
8383
}
8484

8585
dialerTimeout := time.Duration(options.Timeout) * time.Second
@@ -88,14 +88,14 @@ func New(options *clients.Options) (*Runner, error) {
8888
if options.Proxy != "" {
8989
proxyURL, err := url.Parse(options.Proxy)
9090
if err != nil {
91-
return nil, errorutil.NewWithErr(err).Msgf("could not parse proxy")
91+
return nil, errkit.Wrap(err, "could not parse proxy")
9292
}
9393
dialer, err := proxy.FromURL(proxyURL, &net.Dialer{
9494
Timeout: dialerTimeout,
9595
DualStack: true,
9696
})
9797
if err != nil {
98-
return nil, errorutil.NewWithErr(err).Msgf("could not create proxy dialer")
98+
return nil, errkit.Wrap(err, "could not create proxy dialer")
9999
}
100100
proxyDialer = &dialer
101101
}
@@ -112,7 +112,7 @@ func New(options *clients.Options) (*Runner, error) {
112112
}
113113
fastDialer, err := fastdialer.NewDialer(dialerOpts)
114114
if err != nil {
115-
return nil, errorutil.NewWithErr(err).Msgf("could not create dialer")
115+
return nil, errkit.Wrap(err, "could not create dialer")
116116
}
117117
runner.fastDialer = fastDialer
118118
runner.options.Fastdialer = fastDialer
@@ -131,7 +131,7 @@ func New(options *clients.Options) (*Runner, error) {
131131

132132
outputWriter, err := output.New(options)
133133
if err != nil {
134-
return nil, errorutil.NewWithErr(err).Msgf("could not create output writer")
134+
return nil, errkit.Wrap(err, "could not create output writer")
135135
}
136136
runner.outputWriter = outputWriter
137137
if options.TlsCiphersEnum && !options.Silent {
@@ -244,7 +244,7 @@ func (r *Runner) executeCTLogsMode() error {
244244
// Display CT log progress information in verbose mode
245245
if r.options.Verbose {
246246
progressPercent := float64(meta.Index) / float64(meta.TreeSize) * 100
247-
gologger.Info().Msgf("[CT] %s: Index %d/%d (%.1f%%), Lag: %d, URL: %s",
247+
gologger.Info().Msgf("[CT] %s: Index %d/%d (%.1f%%), Lag: %d, URL: %s",
248248
meta.SourceDesc, meta.Index, meta.TreeSize, progressPercent, meta.Lag, meta.LogURL)
249249
}
250250

@@ -267,7 +267,7 @@ func (r *Runner) executeCTLogsMode() error {
267267

268268
ctService, err := ctlogs.New(svcOpts...)
269269
if err != nil {
270-
return errorutil.NewWithErr(err).Msgf("could not create CT logs service")
270+
return errkit.Wrap(err, "could not create CT logs service")
271271
}
272272

273273
// Start streaming
@@ -326,7 +326,7 @@ func (r *Runner) normalizeAndQueueInputs(inputs chan taskInput) error {
326326
if r.options.InputList != "" {
327327
file, err := os.Open(r.options.InputList)
328328
if err != nil {
329-
return errorutil.NewWithErr(err).Msgf("could not open input file")
329+
return errkit.Wrap(err, "could not open input file")
330330
}
331331
defer func() {
332332
if err := file.Close(); err != nil {

pkg/output/output.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
jsoniter "github.com/json-iterator/go"
1212
"github.com/logrusorgru/aurora"
1313
"github.com/projectdiscovery/tlsx/pkg/tlsx/clients"
14-
errorutil "github.com/projectdiscovery/utils/errors"
14+
"github.com/projectdiscovery/utils/errkit" //nolint
1515
mapsutil "github.com/projectdiscovery/utils/maps"
1616
"golang.org/x/exp/maps"
1717
)
@@ -50,7 +50,7 @@ func New(options *clients.Options) (Writer, error) {
5050
if options.OutputFile != "" {
5151
output, err := newFileOutputWriter(options.OutputFile)
5252
if err != nil {
53-
return nil, errorutil.NewWithErr(err).Msgf("could not create output file")
53+
return nil, errkit.Wrap(err, "could not create output file")
5454
}
5555
outputFile = output
5656
}
@@ -75,7 +75,7 @@ func (w *StandardWriter) Write(event *clients.Response) error {
7575
data, err = w.formatStandard(event)
7676
}
7777
if err != nil {
78-
return errorutil.NewWithErr(err).Msgf("could not format output")
78+
return errkit.Wrap(err, "could not format output")
7979
}
8080
data = bytes.TrimSuffix(data, []byte("\n")) // remove last newline
8181
if len(data) == 0 {
@@ -92,7 +92,7 @@ func (w *StandardWriter) Write(event *clients.Response) error {
9292
data = decolorizerRegex.ReplaceAll(data, []byte(""))
9393
}
9494
if writeErr := w.outputFile.Write(data); writeErr != nil {
95-
return errorutil.NewWithErr(err).Msgf("could not write to output")
95+
return errkit.Wrap(err, "could not write to output")
9696
}
9797
}
9898
return nil
@@ -115,11 +115,11 @@ func (w *StandardWriter) formatJSON(output *clients.Response) ([]byte, error) {
115115
// formatStandard formats the output for standard client formatting
116116
func (w *StandardWriter) formatStandard(output *clients.Response) ([]byte, error) {
117117
if output == nil {
118-
return nil, errorutil.New("empty certificate response")
118+
return nil, errkit.New("empty certificate response")
119119
}
120120

121121
if output.CertificateResponse == nil {
122-
return nil, errorutil.New("empty leaf certificate")
122+
return nil, errkit.New("empty leaf certificate")
123123
}
124124
cert := output.CertificateResponse
125125
builder := &bytes.Buffer{}

pkg/tlsx/auto/auto.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import (
1010
"github.com/projectdiscovery/tlsx/pkg/tlsx/openssl"
1111
"github.com/projectdiscovery/tlsx/pkg/tlsx/tls"
1212
"github.com/projectdiscovery/tlsx/pkg/tlsx/ztls"
13-
errorutils "github.com/projectdiscovery/utils/errors"
13+
"github.com/projectdiscovery/utils/errkit"
14+
errorutils "github.com/projectdiscovery/utils/errors" //nolint
1415
sliceutil "github.com/projectdiscovery/utils/slice"
1516
"go.uber.org/multierr"
1617
)
@@ -29,7 +30,7 @@ func New(options *clients.Options) (*Client, error) {
2930
ztlsClient, ztlsErr := ztls.New(options)
3031
opensslClient, opensslErr := openssl.New(options)
3132

32-
if tlsErr != nil && ztlsErr != nil && (opensslErr != nil && !errorutils.IsAny(opensslErr, openssl.ErrNotAvailable)) {
33+
if tlsErr != nil && ztlsErr != nil && (opensslErr != nil && !errorutils.IsAny(opensslErr, openssl.ErrNotAvailable)) { //nolint
3334
return nil, multierr.Combine(tlsErr, ztlsErr, opensslErr)
3435
}
3536
return &Client{tlsClient: tlsClient, ztlsClient: ztlsClient, opensslClient: opensslClient, options: options}, nil
@@ -46,7 +47,7 @@ func (c *Client) ConnectWithOptions(hostname, ip, port string, options clients.C
4647
retryCounter := 0
4748
if c.tlsClient == nil && c.ztlsClient == nil && c.opensslClient == nil {
4849
// logic to avoid infinite loop
49-
return nil, errorutils.New("no tls client available available for auto mode")
50+
return nil, errkit.New("no tls client available available for auto mode")
5051
}
5152
var errStack error
5253
for retryCounter < maxRetries {
@@ -72,7 +73,7 @@ func (c *Client) ConnectWithOptions(hostname, ip, port string, options clients.C
7273
stats.IncrementOpensslTLSConnections()
7374
return response, nil
7475
}
75-
if errorutils.IsAny(opensslErr, openssl.ErrNotAvailable) {
76+
if errorutils.IsAny(opensslErr, openssl.ErrNotAvailable) { //nolint
7677
opensslErr = nil
7778
}
7879
retryCounter++

pkg/tlsx/clients/utils.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"strings"
1111
"time"
1212

13-
errorutil "github.com/projectdiscovery/utils/errors"
13+
"github.com/projectdiscovery/utils/errkit"
1414
iputil "github.com/projectdiscovery/utils/ip"
1515
mapsutil "github.com/projectdiscovery/utils/maps"
1616
)
@@ -102,14 +102,14 @@ func GetConn(ctx context.Context, hostname, ip, port string, inputOpts *Options)
102102
}
103103
//validation
104104
if (hostname == "" && ip == "") || port == "" {
105-
return nil, errorutil.New("client requires valid address got port=%v,hostname=%v,ip=%v", port, hostname, ip)
105+
return nil, errkit.Newf("client requires valid address got port=%v,hostname=%v,ip=%v", port, hostname, ip)
106106
}
107107
rawConn, err := inputOpts.Fastdialer.Dial(ctx, "tcp", address)
108108
if err != nil {
109-
return nil, errorutil.New("could not dial address").Wrap(err)
109+
return nil, errkit.Wrap(err, "could not dial address")
110110
}
111111
if rawConn == nil {
112-
return nil, errorutil.New("could not connect to %s", address)
112+
return nil, errkit.Newf("could not connect to %s", address)
113113
}
114114
if inputOpts.Timeout == 0 {
115115
inputOpts.Timeout = 5

pkg/tlsx/openssl/common.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ import (
99
"strings"
1010

1111
"github.com/projectdiscovery/gologger"
12-
errorutils "github.com/projectdiscovery/utils/errors"
12+
errorutils "github.com/projectdiscovery/utils/errors" //nolint
1313
)
1414

1515
var (
16-
ErrParse = errorutils.NewWithTag("openssl", "failed to parse openssl response")
17-
ErrCertParse = errorutils.NewWithTag("openssl", "failed to parse server certificate")
18-
ErrNotImplemented = errorutils.NewWithTag("openssl", "feature not implemented")
19-
ErrNotAvailable = errorutils.NewWithTag("openssl", "executable not installed or in PATH")
20-
ErrNoSession = errorutils.NewWithTag("openssl", "session not created/found")
16+
ErrParse = errorutils.NewWithTag("openssl", "failed to parse openssl response") //nolint
17+
ErrCertParse = errorutils.NewWithTag("openssl", "failed to parse server certificate") //nolint
18+
ErrNotImplemented = errorutils.NewWithTag("openssl", "feature not implemented") //nolint
19+
ErrNotAvailable = errorutils.NewWithTag("openssl", "executable not installed or in PATH") //nolint
20+
ErrNoSession = errorutils.NewWithTag("openssl", "session not created/found") //nolint
2121
)
2222

2323
var (
@@ -55,19 +55,19 @@ func init() {
5555
return
5656
}
5757
if err := openSSLSetup(); err != nil {
58-
gologger.Debug().Label("openssl").Msg(err.Error())
58+
gologger.Debug().Label("openssl").Msg(err.Error()) //nolint
5959
}
6060
}
6161

6262
// fetch openssl version
63-
func openSSLSetup() errorutils.Error {
63+
func openSSLSetup() errorutils.Error { //nolint
6464
result, err := execOpenSSL(context.TODO(), []string{"version"})
6565
if err != nil {
66-
return errorutils.NewWithErr(err).WithTag("openssl").Msgf(result.Stderr)
66+
return errorutils.NewWithErr(err).WithTag("openssl").Msgf(result.Stderr) //nolint
6767
}
6868
arr := strings.Fields(result.Stdout)
6969
if len(arr) < 2 {
70-
return errorutils.NewWithTag("openssl", "failed to parse openssl version got %v", result.Stdout)
70+
return errorutils.NewWithTag("openssl", "failed to parse openssl version got %v", result.Stdout) //nolint
7171
}
7272
if arr[0] == "LibreSSL" {
7373
IsLibreSSL = true
@@ -100,6 +100,6 @@ func UseOpenSSLBinary(binpath string) {
100100
BinaryPath = binpath
101101
if err := openSSLSetup(); err != nil {
102102
// do not fallback
103-
gologger.Fatal().Label("openssl").Msg(err.Error())
103+
gologger.Fatal().Label("openssl").Msg(err.Error()) //nolint
104104
}
105105
}

0 commit comments

Comments
 (0)