From 038867245068b3ee32602c3b0a8475e384f4a626 Mon Sep 17 00:00:00 2001 From: Nick McClendon Date: Tue, 12 Dec 2023 00:52:51 -0600 Subject: [PATCH] Update package path --- .github/workflows/test.yml | 36 + Makefile | 16 +- README.md | 4 +- cmd/gocrack_server/server.go | 4 +- cmd/gocrack_worker/worker.go | 8 +- docker/Makefile | 4 +- docs/administrator/config.md | 2 +- go.mod | 77 +- go.sum | 500 +++++- opencl/devices.go | 4 +- opencl/include.h | 2 +- opencl/platform_test.go | 9 +- server/auth_plugin_database.go | 3 +- server/auth_plugin_default.go | 5 +- server/auth_plugin_ldap.go | 3 +- server/authentication/authentication.go | 4 +- server/authentication/authentication_test.go | 6 +- server/authentication/database/database.go | 4 +- .../authentication/database/database_test.go | 6 +- server/authentication/ldap/ldap.go | 8 +- server/authentication/test/fake_auth.go | 2 +- server/authentication/test/fake_database.go | 2 +- server/config.go | 12 +- server/filemanager/config.go | 2 +- server/filemanager/config_test.go | 2 +- server/filemanager/filemanager.go | 2 +- server/filemanager/filemanager_test.go | 8 +- server/filemanager/importer.go | 6 +- server/filemanager/test/fakestor.go | 2 +- server/notifications/notifications.go | 2 +- server/rpc/client/beacon.go | 2 +- server/rpc/client/client_test.go | 2 +- server/rpc/client/tasks.go | 2 +- server/rpc/rpc.go | 2 +- server/rpc/rpc_beacon.go | 4 +- server/rpc/rpc_server.go | 8 +- server/rpc/rpc_tasks.go | 2 +- server/server.go | 14 +- server/storage/bdb/audit_log.go | 2 +- server/storage/bdb/audit_log_test.go | 6 +- server/storage/bdb/engine_file.go | 2 +- server/storage/bdb/engine_file_txn.go | 2 +- server/storage/bdb/entitlement.go | 2 +- server/storage/bdb/entitlement_test.go | 10 +- server/storage/bdb/helpers.go | 2 +- server/storage/bdb/schemas.go | 2 +- server/storage/bdb/storage.go | 2 +- server/storage/bdb/storage_test.go | 2 +- server/storage/bdb/storm_query_contains.go | 2 +- server/storage/bdb/task_checkpoint.go | 2 +- server/storage/bdb/task_create_txn.go | 2 +- server/storage/bdb/task_file.go | 2 +- server/storage/bdb/task_file_test.go | 2 +- server/storage/bdb/task_management.go | 4 +- server/storage/bdb/task_management_test.go | 76 +- server/storage/bdb/user.go | 6 +- server/storage/bdb/user_test.go | 2 +- server/storage/opencl_type.go | 2 +- server/storage_driver_bdb.go | 3 +- server/storage_driver_default.go | 3 +- server/web/api.go | 10 +- server/web/audit_log.go | 2 +- server/web/auth.go | 4 +- server/web/config.go | 2 +- server/web/engine_specific_hashcat.go | 16 +- server/web/file_management_delete.go | 4 +- server/web/file_management_engine.go | 8 +- server/web/file_management_task.go | 49 +- server/web/middlewares.go | 6 +- server/web/middlewares_test.go | 6 +- server/web/server.go | 8 +- server/web/server_version.go | 2 +- server/web/sse_endpoint.go | 6 +- server/web/task_management.go | 10 +- server/web/task_management_delete.go | 2 +- server/web/task_management_entitlements.go | 2 +- server/web/task_management_helpers.go | 12 +- server/web/users.go | 8 +- server/web/workers.go | 2 +- server/workmgr/config.go | 2 +- server/workmgr/workmgr.go | 4 +- server/workmgr/workmgr_test.go | 6 +- shared/hashcat_types.go | 1381 +---------------- shared/hashcat_types_test.go | 20 - shared/types.go | 2 +- shared/types_test.go | 2 +- worker/child/child.go | 6 +- worker/child/task.go | 12 +- worker/config.go | 2 +- worker/engines/hashcat/hashcat_engine.go | 18 +- worker/engines/hashcat/helpers.go | 4 +- worker/engines/hashcat/restore_modifer.go | 8 +- .../engines/hashcat/restore_modifier_test.go | 8 +- worker/opencl_info.go | 4 +- worker/parent/beacon.go | 12 +- worker/parent/mule_manager.go | 2 +- worker/parent/mule_manager_test.go | 6 +- worker/parent/worker.go | 6 +- worker/worker.go | 2 +- 99 files changed, 835 insertions(+), 1750 deletions(-) create mode 100644 .github/workflows/test.yml delete mode 100644 shared/hashcat_types_test.go diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..aedc9e0 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,36 @@ +--- +name: Test master +on: + push: + branches: [master] +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Install build dependencies + run: sudo apt-get update -y && sudo apt-get install -y libminizip-dev ocl-icd-libopencl1 ocl-icd-opencl-dev opencl-headers pocl-opencl-icd + - uses: actions/checkout@v3 + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: 'stable' + - name: Checkout hashcat + uses: actions/checkout@v3 + with: + repository: hashcat/hashcat + ref: v6.1.1 + path: hashcat + - name: Install hashcat + working-directory: ./hashcat + run: sudo make install SHARED=1 ENABLE_BRAIN=0 + - name: Install additional dependencies + working-directory: ./hashcat + run: | + sudo cp deps/LZMA-SDK/C/LzmaDec.h /usr/local/include/hashcat/ + sudo cp deps/LZMA-SDK/C/7zTypes.h /usr/local/include/hashcat/ + sudo cp deps/LZMA-SDK/C/Lzma2Dec.h /usr/local/include/hashcat/ + sudo cp -r ./OpenCL/inc_types.h /usr/local/include/hashcat/ + sudo cp -r ./deps/zlib/contrib /usr/local/include/hashcat + sudo ln -s /usr/local/lib/libhashcat.so.6.1.1 /usr/local/lib/libhashcat.so + - name: Run tests + run: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib go test ./... diff --git a/Makefile b/Makefile index 7e926f5..2cc9286 100644 --- a/Makefile +++ b/Makefile @@ -13,22 +13,22 @@ endif build: mkdir -p builds/ go build -tags "$(WORKBUILDTAGS)" -o $(BINDIR)/gocrack_worker $(CFLAGS) -ldflags \ - "-X github.com/fireeye/gocrack/worker.CompileRev=${BUILDREV} \ - -X github.com/fireeye/gocrack/worker.CompileTime=${BUILDDATE} \ - -X github.com/fireeye/gocrack/worker/engines/hashcat.HashcatVersion=${HASHCAT_VER}" \ + "-X github.com/mandiant/gocrack/worker.CompileRev=${BUILDREV} \ + -X github.com/mandiant/gocrack/worker.CompileTime=${BUILDDATE} \ + -X github.com/mandiant/gocrack/worker/engines/hashcat.HashcatVersion=${HASHCAT_VER}" \ cmd/gocrack_worker/*.go go build -tags "$(SERVBUILDTAGS)" -o $(BINDIR)/gocrack_server $(CFLAGS) -ldflags \ - "-X github.com/fireeye/gocrack/server.CompileRev=${BUILDREV} \ - -X github.com/fireeye/gocrack/server.CompileTime=${BUILDDATE}" \ + "-X github.com/mandiant/gocrack/server.CompileRev=${BUILDREV} \ + -X github.com/mandiant/gocrack/server.CompileTime=${BUILDDATE}" \ cmd/gocrack_server/*.go static_analysis: - go vet `go list ./... | egrep -v 'gocat|vendor'` + go vet `go list ./...` test: - go test -cover -v `go list ./... | egrep -v 'gocat|vendor'` + go test -cover -v `go list ./...` clean: rm -rf builds/ -all: static_analysis test build \ No newline at end of file +all: static_analysis test build diff --git a/README.md b/README.md index 6434dd1..18544ad 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # gocrack -[![Build Status](https://travis-ci.org/fireeye/gocrack.svg?branch=master)](https://travis-ci.org/fireeye/gocrack) [![codecov](https://codecov.io/gh/fireeye/gocrack/branch/master/graph/badge.svg)](https://codecov.io/gh/fireeye/gocrack) [![reportcard](https://goreportcard.com/badge/github.com/fireeye/gocrack)](https://goreportcard.com/report/github.com/fireeye/gocrack) +[![Build Status](https://travis-ci.org/mandiant/gocrack.svg?branch=master)](https://travis-ci.org/mandiant/gocrack) [![codecov](https://codecov.io/gh/mandiant/gocrack/branch/master/graph/badge.svg)](https://codecov.io/gh/mandiant/gocrack) [![reportcard](https://goreportcard.com/badge/github.com/mandiant/gocrack)](https://goreportcard.com/report/github.com/mandiant/gocrack) ![GoCrack Logo](/docs/logo.png) @@ -8,7 +8,7 @@ GoCrack provides APIs to manage password cracking tasks across supported crackin ## Supported Engines -* [hashcat 5.X+](https://github.com/hashcat/hashcat) +* [hashcat 6.X+](https://github.com/hashcat/hashcat) ## Documentation diff --git a/cmd/gocrack_server/server.go b/cmd/gocrack_server/server.go index c56ad34..224f801 100644 --- a/cmd/gocrack_server/server.go +++ b/cmd/gocrack_server/server.go @@ -6,8 +6,8 @@ import ( "os/signal" "syscall" - "github.com/fireeye/gocrack/server" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server" + "github.com/mandiant/gocrack/shared" "github.com/rs/zerolog" "github.com/rs/zerolog/log" diff --git a/cmd/gocrack_worker/worker.go b/cmd/gocrack_worker/worker.go index 72f8f1e..81f2b62 100644 --- a/cmd/gocrack_worker/worker.go +++ b/cmd/gocrack_worker/worker.go @@ -11,10 +11,10 @@ import ( "strings" "syscall" - "github.com/fireeye/gocrack/shared" - "github.com/fireeye/gocrack/worker" - "github.com/fireeye/gocrack/worker/child" - "github.com/fireeye/gocrack/worker/parent" + "github.com/mandiant/gocrack/shared" + "github.com/mandiant/gocrack/worker" + "github.com/mandiant/gocrack/worker/child" + "github.com/mandiant/gocrack/worker/parent" "github.com/rs/zerolog" "github.com/rs/zerolog/log" diff --git a/docker/Makefile b/docker/Makefile index 8c41dd9..cf2412d 100755 --- a/docker/Makefile +++ b/docker/Makefile @@ -2,7 +2,7 @@ ROOT_PROJECT := gocrack PKG_AUTHOR := Christopher Schmitt HASHCAT_VERSION := v5.1.0 -GOCRACK_PROJ := github.com/fireeye/gocrack +GOCRACK_PROJ := github.com/mandiant/gocrack GOCRACK_CODE_LOCAL := ${GOPATH}/src/$(GOCRACK_PROJ) EXTERNAL_DIR := $(CURDIR)/external HASHCAT_DIR := $(EXTERNAL_DIR)/hashcat @@ -50,4 +50,4 @@ build_images: build_server_image build_worker_image clean: @rm -rf $(DIST_DIR) -build: hashcat gocrack build_server_image build_worker_image \ No newline at end of file +build: hashcat gocrack build_server_image build_worker_image diff --git a/docs/administrator/config.md b/docs/administrator/config.md index 6ca37df..9ae7453 100644 --- a/docs/administrator/config.md +++ b/docs/administrator/config.md @@ -56,7 +56,7 @@ Example Configs for NGINX: * `allowed_origins`: A list of domains (origins) in which requests will be made from (UI). This is a [CORS] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) setting. * `max_preflight_age`: Indicates how long the response of a preflight request can be cached by the browser. By default, this is set to 24 hours. It must be in the format of a [duration string](https://golang.org/pkg/time/#ParseDuration) 1. `ui` - * `static_path`: Path containing `index.html` and a folder called `static` that serve as the GoCrack User Interface. The reference user interface can be found in the [gocrack-ui repository](https://github.com/fireeye/gocrack-ui). + * `static_path`: Path containing `index.html` and a folder called `static` that serve as the GoCrack User Interface. The reference user interface can be found in the [gocrack-ui repository](https://github.com/mandiant/gocrack-ui). * `csrf_key`: A secure key that is used to sign the CSRF cookies. This should be set to a strong, random string * `csrf_enabled`: By default, this is true but on development instances this should be set to false. diff --git a/go.mod b/go.mod index 8132bef..d9a7346 100644 --- a/go.mod +++ b/go.mod @@ -1,44 +1,65 @@ -module github.com/fireeye/gocrack +module github.com/mandiant/gocrack -go 1.12 +go 1.20 + +require ( + github.com/asdine/storm v0.0.0-20190418133842-e0f77eada154 + github.com/gin-contrib/cors v1.3.1 + github.com/gin-gonic/gin v1.7.7 + github.com/google/uuid v1.3.0 + github.com/gorilla/csrf v1.7.0 + github.com/mandiant/gocat/v6 v6.1.0 + github.com/nightlyone/lockfile v0.0.0-20170804114028-6a197d5ea611 + github.com/prometheus/client_golang v1.8.0 + github.com/prometheus/client_model v0.2.0 + github.com/rs/zerolog v1.20.0 + github.com/shirou/gopsutil v0.0.0-20170510024726-b6da2bd76e7d + github.com/stretchr/testify v1.7.0 + github.com/tankbusta/gzip v0.0.0-20171023233440-5ea045a82e8f + github.com/tankbusta/hashvalidate v0.11.1 + github.com/tchap/go-exchange v0.0.0-20141009085351-ebe3feb493da + golang.org/x/crypto v0.0.0-20211209193657-4570a0811e8b + gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df + gopkg.in/ldap.v2 v2.5.1 + gopkg.in/square/go-jose.v2 v2.5.1 + gopkg.in/yaml.v2 v2.4.0 +) require ( github.com/DataDog/zstd v1.4.0 // indirect github.com/Sereal/Sereal v0.0.0-20190606082811-cf1bab6c7a3a // indirect github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect - github.com/asdine/storm v0.0.0-20190418133842-e0f77eada154 - github.com/fireeye/gocat v0.0.0-20190613212338-ce97d32213d0 - github.com/gin-contrib/cors v1.3.0 + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/gin-contrib/sse v0.1.0 // indirect - github.com/gin-gonic/gin v1.4.0 github.com/go-ole/go-ole v1.2.4 // indirect + github.com/go-playground/locales v0.14.0 // indirect + github.com/go-playground/universal-translator v0.18.0 // indirect + github.com/go-playground/validator/v10 v10.9.0 // indirect + github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.1 // indirect - github.com/gorilla/csrf v1.5.1 - github.com/kr/pty v1.1.5 // indirect - github.com/mattn/go-isatty v0.0.8 // indirect - github.com/nightlyone/lockfile v0.0.0-20170804114028-6a197d5ea611 - github.com/prometheus/client_golang v0.9.4 - github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 - github.com/rs/zerolog v1.14.3 - github.com/satori/go.uuid v0.0.0-20160713180306-0aa62d5ddceb - github.com/shirou/gopsutil v0.0.0-20170510024726-b6da2bd76e7d + github.com/gorilla/securecookie v1.1.1 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/common v0.14.0 // indirect + github.com/prometheus/procfs v0.2.0 // indirect github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 // indirect - github.com/stretchr/objx v0.2.0 // indirect - github.com/stretchr/testify v1.3.0 - github.com/tankbusta/gzip v0.0.0-20171023233440-5ea045a82e8f - github.com/tchap/go-exchange v0.0.0-20141009085351-ebe3feb493da - github.com/tchap/go-patricia v2.2.6+incompatible // indirect + github.com/tchap/go-patricia v2.3.0+incompatible // indirect + github.com/ugorji/go/codec v1.2.6 // indirect github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect go.etcd.io/bbolt v1.3.3 // indirect - golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 - golang.org/x/net v0.0.0-20190611141213-3f473d35a33a // indirect - golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae // indirect - golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b // indirect + golang.org/x/sys v0.0.0-20211213223007-03aa0b5f6827 // indirect + golang.org/x/text v0.3.7 // indirect google.golang.org/appengine v1.6.1 // indirect + google.golang.org/protobuf v1.27.1 // indirect gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175 // indirect - gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df - gopkg.in/ldap.v2 v2.5.1 - gopkg.in/square/go-jose.v2 v2.3.1 - gopkg.in/yaml.v2 v2.2.2 + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index 595bf17..6bbeeb6 100644 --- a/go.sum +++ b/go.sum @@ -1,177 +1,549 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DataDog/zstd v1.4.0 h1:vhoV+DUHnRZdKW1i5UMjAk2G4JY8wN4ayRfYDNdEhwo= github.com/DataDog/zstd v1.4.0/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Sereal/Sereal v0.0.0-20181211220259-509a78ddbda3/go.mod h1:D0JMgToj/WdxCgd30Kc1UcA9E+WdZoJqeVOuYW7iTBM= github.com/Sereal/Sereal v0.0.0-20190606082811-cf1bab6c7a3a h1:r3TT14Z4rWYwW2U8F1DkyM0dpvafwUsye+X3j1J5U3g= github.com/Sereal/Sereal v0.0.0-20190606082811-cf1bab6c7a3a/go.mod h1:D0JMgToj/WdxCgd30Kc1UcA9E+WdZoJqeVOuYW7iTBM= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUWq3EgK3CesDbo8upS2Vm9/P3FtgI+Jk= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/asdine/storm v0.0.0-20190418133842-e0f77eada154 h1:2lbe+CPe6eQf2EA3jjLdLFZKGv3cbYqVIDjKnzcyOXg= github.com/asdine/storm v0.0.0-20190418133842-e0f77eada154/go.mod h1:cMLKpjHSP4q0P133fV15ojQgwWWB2IMv+hrFsmBF/wI= -github.com/asdine/storm v2.1.2+incompatible h1:dczuIkyqwY2LrtXPz8ixMrU/OFgZp71kbKTHGrXYt/Q= -github.com/asdine/storm v2.1.2+incompatible/go.mod h1:RarYDc9hq1UPLImuiXK3BIWPJLdIygvV3PsInK0FbVQ= +github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= +github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fireeye/gocat v0.0.0-20190613212338-ce97d32213d0 h1:9Q627+zI86PEvW6swCZocEJKt9N2ALa+QF9RVhQX/nw= -github.com/fireeye/gocat v0.0.0-20190613212338-ce97d32213d0/go.mod h1:jiQe5RA0SrrZbYO2QvfWgQKzLBDTmJH9nwrfokC3Euo= -github.com/gin-contrib/cors v0.0.0-20170708080947-567de1916927 h1:Asmg6n4CmGBOR6Lc6v7NFVB7rTqeiig/lcPKxwC/YXw= -github.com/gin-contrib/cors v0.0.0-20170708080947-567de1916927/go.mod h1:cw+u9IsAkC16e42NtYYVCLsHYXE98nB3M7Dr9mLSeH4= -github.com/gin-contrib/cors v1.3.0 h1:PolezCc89peu+NgkIWt9OB01Kbzt6IP0J/JvkG6xxlg= -github.com/gin-contrib/cors v1.3.0/go.mod h1:artPvLlhkF7oG06nK8v3U8TNz6IeX+w1uzCSEId5/Vc= -github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/cors v1.3.1 h1:doAsuITavI4IOcd0Y19U4B+O0dNWihRyX//nn4sEmgA= +github.com/gin-contrib/cors v1.3.1/go.mod h1:jjEJ4268OPZUcU7k9Pm653S7lXUGcqMADzFA61xsmDk= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.4.0 h1:3tMoCCfM7ppqsR0ptz/wi1impNpT7/9wQtMZ8lr1mCQ= -github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= +github.com/gin-gonic/gin v1.7.7 h1:3DoBmSbJbZAWqXJC3SLjAPfutPJJRN1U5pALB7EeTTs= +github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI= github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-playground/validator/v10 v10.9.0 h1:NgTtmN58D0m8+UuxtYmGztBJB7VnPgjj221I1QHci2A= +github.com/go-playground/validator/v10 v10.9.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/csrf v1.5.1 h1:UASc2+EB0T51tvl6/2ls2ciA8/qC7KdTO7DsOEKbttQ= -github.com/gorilla/csrf v1.5.1/go.mod h1:HTDW7xFOO1aHddQUmghe9/2zTvg7AYCnRCs7MxTGu/0= +github.com/gorilla/csrf v1.7.0 h1:mMPjV5/3Zd460xCavIkppUdvnl5fPXMpv2uz2Zyg7/Y= +github.com/gorilla/csrf v1.7.0/go.mod h1:+a/4tCmqhG6/w4oafeAZ9pEa3/NZOWYVbD9fV0FwIQA= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= +github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/mandiant/gocat/v6 v6.1.0 h1:o0CObRTD/qCFDo9TtzERb83Fs3ht18RZt35TIs9vTLA= +github.com/mandiant/gocat/v6 v6.1.0/go.mod h1:xaBEcUXDXmnqS0kL5OGKb4vPQlvpa2/6mzgMiT1lImE= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= +github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nightlyone/lockfile v0.0.0-20170804114028-6a197d5ea611 h1:dJA8OtA0V3XJ3MvZKU8tOlrXenaGOypfPHSi2JWgBto= github.com/nightlyone/lockfile v0.0.0-20170804114028-6a197d5ea611/go.mod h1:JbxfV1Iifij2yhRjXai0oFrbpxszXHRx1E5RuM26o4Y= +github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= +github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.4 h1:Y8E/JaaPbmFSW2V81Ab/d8yZFYQQGbni1b1jPcG9Y6A= -github.com/prometheus/client_golang v0.9.4/go.mod h1:oCXIBxdI62A4cR6aTRJCgetEjecSIYzOEaeAn4iYEpM= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.8.0 h1:zvJNkoCFAnYFNC24FV8nW4JdRJ3GIFcLbg65lL/JDcw= +github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.14.0 h1:RHRyE8UocrbjU+6UvRzwi6HjiDfxrrBU91TtbKzkGp4= +github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= +github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.14.3 h1:4EGfSkR2hJDB0s3oFfrlPqjU1e4WLncergLil3nEKW0= -github.com/rs/zerolog v1.14.3/go.mod h1:3WXPzbXEEliJ+a6UFE4vhIxV8qR1EML6ngzP9ug4eYg= -github.com/satori/go.uuid v0.0.0-20160713180306-0aa62d5ddceb h1:1r/p6yT1FfHR1+qBm7UYBPgfqCmzz/8mpNvfc+iKlfU= -github.com/satori/go.uuid v0.0.0-20160713180306-0aa62d5ddceb/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/rs/zerolog v1.20.0 h1:38k9hgtUBdxFwE34yS8rTHmHBa4eN16E4DJlv177LNs= +github.com/rs/zerolog v1.20.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shirou/gopsutil v0.0.0-20170510024726-b6da2bd76e7d h1:LeaIII7aaihsHubuUO2FQyEzU4q/1hrBo3AT+E5YBZk= github.com/shirou/gopsutil v0.0.0-20170510024726-b6da2bd76e7d/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 h1:udFKJ0aHUL60LboW/A+DfgoHVedieIzIXE8uylPue0U= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/tankbusta/gzip v0.0.0-20171023233440-5ea045a82e8f h1:Bb5P7GrYExTvQsggmfjpcpObUXJg/ZZk29bVu4nojFA= github.com/tankbusta/gzip v0.0.0-20171023233440-5ea045a82e8f/go.mod h1:xm9CKnvOrF3sgiNUu8xVK+3+5YvW/uIOR7lM//NeXrE= +github.com/tankbusta/hashvalidate v0.11.1 h1:7O6PwGklHh5oeTz6jprKlk7VyCv1mmfwBjeCo8Idug4= +github.com/tankbusta/hashvalidate v0.11.1/go.mod h1:RBhdOP0Gfp46QbGbanD0QRCnAMDjVC4/Of3y65XK40U= github.com/tchap/go-exchange v0.0.0-20141009085351-ebe3feb493da h1:hFJk5HBUkfPOQqsUXIyWz1V9ZtpUdgzecjVUONGEwis= github.com/tchap/go-exchange v0.0.0-20141009085351-ebe3feb493da/go.mod h1:jNOquFYZ6d7pucR/rMI2+cIWx1e96tBQ0eJzfo2JJFw= -github.com/tchap/go-patricia v2.2.6+incompatible h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPxmzYe32HHy5yQ+Ck= -github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= -github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/tchap/go-patricia v2.3.0+incompatible h1:GkY4dP3cEfEASBPPkWd+AmjYxhmDkqO9/zg7R0lSQRs= +github.com/tchap/go-patricia v2.3.0+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go v1.2.6/go.mod h1:anCg0y61KIhDlPZmnH+so+RQbysYVyDko0IMgJv0Nn0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.6 h1:7kbGefxLoDBuYXOms4yD7223OpNMMPNPZxXk5TvFcyQ= +github.com/ugorji/go/codec v1.2.6/go.mod h1:V6TCNZ4PHqoHGFZuSG1W8nrCzzdgA2DozYxWFFpvxTw= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vmihailenco/msgpack v4.0.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= go.etcd.io/bbolt v1.3.0/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmVhcMLU6v5fEb/ok4wyqtNU= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 h1:1wopBVtVdWnn03fZelqdXTqk7U7zPQCb+T4rbU9ZEoU= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211209193657-4570a0811e8b h1:QAqMVf3pSa6eeTsuklijukjXBlj7Es2QQplab+/RbQ4= +golang.org/x/crypto v0.0.0-20211209193657-4570a0811e8b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190611141213-3f473d35a33a h1:+KkCgOMgnKSgenxTBoiwkMqTiouMIy/3o8RLdmSbGoY= -golang.org/x/net v0.0.0-20190611141213-3f473d35a33a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c h1:+EXw7AwNOKzPFXMZ1yNjO40aWCh3PIquJB2fYlv9wcs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae h1:xiXzMMEQdQcric9hXtr1QU98MHunKK7OTtsoU6bYWs4= -golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211213223007-03aa0b5f6827 h1:A0Qkn7Z/n8zC1xd9LTw17AiKlBRK64tw3ejWQiEqca0= +golang.org/x/sys v0.0.0-20211213223007-03aa0b5f6827/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175 h1:nn6Zav2sOQHCFJHEspya8KqxhFwKci30UxHy3HXPTyQ= gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v8 v8.18.2 h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2GVOI3xgiMrQ= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= -gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/opencl/devices.go b/opencl/devices.go index 613d1a9..23aaf0b 100644 --- a/opencl/devices.go +++ b/opencl/devices.go @@ -2,7 +2,9 @@ package opencl // #include "include.h" import "C" -import "unsafe" +import ( + "unsafe" +) const maxDeviceCount = 64 diff --git a/opencl/include.h b/opencl/include.h index a047502..4ffc2fe 100644 --- a/opencl/include.h +++ b/opencl/include.h @@ -8,4 +8,4 @@ #include "CL/cl.h" #endif -#endif \ No newline at end of file +#endif diff --git a/opencl/platform_test.go b/opencl/platform_test.go index e911e1f..84ffb91 100644 --- a/opencl/platform_test.go +++ b/opencl/platform_test.go @@ -1,7 +1,10 @@ package opencl -import "testing" -import "github.com/stretchr/testify/assert" +import ( + "testing" + + "github.com/stretchr/testify/assert" +) type getterTest struct { Out string @@ -33,7 +36,7 @@ func TestGetPlatforms(t *testing.T) { } devices, err := platform.GetDevices(DeviceTypeAll) - assert.Nil(t, err) + assert.Nil(t, err, "This can happen if you have a platform installed that legitimately has no devices") assert.True(t, len(devices) > 0) } } diff --git a/server/auth_plugin_database.go b/server/auth_plugin_database.go index c675524..372388d 100644 --- a/server/auth_plugin_database.go +++ b/server/auth_plugin_database.go @@ -1,5 +1,6 @@ +//go:build auth_database // +build auth_database package server -import _ "github.com/fireeye/gocrack/server/authentication/database" +import _ "github.com/mandiant/gocrack/server/authentication/database" diff --git a/server/auth_plugin_default.go b/server/auth_plugin_default.go index 4a63908..c4bec0d 100644 --- a/server/auth_plugin_default.go +++ b/server/auth_plugin_default.go @@ -1,8 +1,9 @@ +//go:build !auth_database && !auth_ldap // +build !auth_database,!auth_ldap package server import ( - _ "github.com/fireeye/gocrack/server/authentication/database" - _ "github.com/fireeye/gocrack/server/authentication/ldap" + _ "github.com/mandiant/gocrack/server/authentication/database" + _ "github.com/mandiant/gocrack/server/authentication/ldap" ) diff --git a/server/auth_plugin_ldap.go b/server/auth_plugin_ldap.go index 8ef4805..4e78647 100644 --- a/server/auth_plugin_ldap.go +++ b/server/auth_plugin_ldap.go @@ -1,5 +1,6 @@ +//go:build auth_ldap // +build auth_ldap package server -import _ "github.com/fireeye/gocrack/server/authentication/ldap" +import _ "github.com/mandiant/gocrack/server/authentication/ldap" diff --git a/server/authentication/authentication.go b/server/authentication/authentication.go index 44999fd..a6cf401 100644 --- a/server/authentication/authentication.go +++ b/server/authentication/authentication.go @@ -5,8 +5,8 @@ import ( "fmt" "time" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" jose "gopkg.in/square/go-jose.v2" jwt "gopkg.in/square/go-jose.v2/jwt" diff --git a/server/authentication/authentication_test.go b/server/authentication/authentication_test.go index 4fe5281..75980e4 100644 --- a/server/authentication/authentication_test.go +++ b/server/authentication/authentication_test.go @@ -5,9 +5,9 @@ import ( "testing" "time" - test "github.com/fireeye/gocrack/server/authentication/test" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + test "github.com/mandiant/gocrack/server/authentication/test" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" "github.com/stretchr/testify/assert" ) diff --git a/server/authentication/database/database.go b/server/authentication/database/database.go index 291c6f8..26fec68 100644 --- a/server/authentication/database/database.go +++ b/server/authentication/database/database.go @@ -3,8 +3,8 @@ package database import ( "fmt" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/storage" "github.com/rs/zerolog/log" "golang.org/x/crypto/bcrypt" diff --git a/server/authentication/database/database_test.go b/server/authentication/database/database_test.go index ed88027..52ed406 100644 --- a/server/authentication/database/database_test.go +++ b/server/authentication/database/database_test.go @@ -5,9 +5,9 @@ import ( "strings" "testing" - "github.com/fireeye/gocrack/server/authentication" - test "github.com/fireeye/gocrack/server/authentication/test" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/authentication" + test "github.com/mandiant/gocrack/server/authentication/test" + "github.com/mandiant/gocrack/server/storage" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" diff --git a/server/authentication/ldap/ldap.go b/server/authentication/ldap/ldap.go index 0e5d728..0fa79e6 100644 --- a/server/authentication/ldap/ldap.go +++ b/server/authentication/ldap/ldap.go @@ -8,10 +8,10 @@ import ( "fmt" "strings" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/storage" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" ldap "gopkg.in/ldap.v2" ) @@ -233,7 +233,7 @@ func (s *Backend) Login(username, password string) (*storage.User, error) { Username: username, IsSuperUser: isUserFirstAndShouldBeAdmin, EmailAddress: props["mail"], - UserUUID: uuid.NewV4().String(), + UserUUID: uuid.NewString(), Password: "user_is_ldap", } diff --git a/server/authentication/test/fake_auth.go b/server/authentication/test/fake_auth.go index ed6fa7e..83bbac3 100644 --- a/server/authentication/test/fake_auth.go +++ b/server/authentication/test/fake_auth.go @@ -1,6 +1,6 @@ package test -import "github.com/fireeye/gocrack/server/storage" +import "github.com/mandiant/gocrack/server/storage" type FakeAuthPlugin struct { db *FakeDatabase diff --git a/server/authentication/test/fake_database.go b/server/authentication/test/fake_database.go index f5a113f..6eeda53 100644 --- a/server/authentication/test/fake_database.go +++ b/server/authentication/test/fake_database.go @@ -3,7 +3,7 @@ package test import ( "errors" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" ) type FakeDatabase struct { diff --git a/server/config.go b/server/config.go index 5e2a167..8a66abb 100644 --- a/server/config.go +++ b/server/config.go @@ -3,12 +3,12 @@ package server import ( "errors" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/filemanager" - "github.com/fireeye/gocrack/server/notifications" - "github.com/fireeye/gocrack/server/rpc" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/server/web" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/filemanager" + "github.com/mandiant/gocrack/server/notifications" + "github.com/mandiant/gocrack/server/rpc" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/server/web" ) // Config describes all the configuration values of the GoCrack server diff --git a/server/filemanager/config.go b/server/filemanager/config.go index c52eb0d..a63ce01 100644 --- a/server/filemanager/config.go +++ b/server/filemanager/config.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/shared" ) var ( diff --git a/server/filemanager/config_test.go b/server/filemanager/config_test.go index ed5e853..6559c03 100644 --- a/server/filemanager/config_test.go +++ b/server/filemanager/config_test.go @@ -5,7 +5,7 @@ import ( "io/ioutil" "testing" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/shared" "github.com/stretchr/testify/assert" ) diff --git a/server/filemanager/filemanager.go b/server/filemanager/filemanager.go index 59c3e0e..6a25975 100644 --- a/server/filemanager/filemanager.go +++ b/server/filemanager/filemanager.go @@ -12,7 +12,7 @@ import ( "path/filepath" "strings" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" ) // Context contains the state of the filemanager and provides public methods to interact diff --git a/server/filemanager/filemanager_test.go b/server/filemanager/filemanager_test.go index ee425f2..8422a25 100644 --- a/server/filemanager/filemanager_test.go +++ b/server/filemanager/filemanager_test.go @@ -6,10 +6,10 @@ import ( "os" "testing" - fakestor "github.com/fireeye/gocrack/server/filemanager/test" - "github.com/fireeye/gocrack/server/storage" + fakestor "github.com/mandiant/gocrack/server/filemanager/test" + "github.com/mandiant/gocrack/server/storage" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" "github.com/stretchr/testify/assert" ) @@ -69,7 +69,7 @@ func TestSaveEngineFile(t *testing.T) { assert.FailNow(t, "failed to create test file", err.Error()) } - uuidToCreate := uuid.NewV4().String() + uuidToCreate := uuid.NewString() fresp, err := fm.SaveFile(testfile, "testing", uuidToCreate, storage.EngineFileDictionary) if err != nil { assert.FailNow(t, "failed to save test file", err.Error()) diff --git a/server/filemanager/importer.go b/server/filemanager/importer.go index 94fceb8..993e073 100644 --- a/server/filemanager/importer.go +++ b/server/filemanager/importer.go @@ -5,10 +5,10 @@ import ( "path/filepath" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" + "github.com/google/uuid" "github.com/rs/zerolog/log" - uuid "github.com/satori/go.uuid" ) type extlookup map[string]storage.EngineFileType @@ -48,7 +48,7 @@ func (s *Context) importDirectory() error { Str("extension", extension). Msg("Importing file") - fileUUID := uuid.NewV4().String() + fileUUID := uuid.NewString() fd, err := os.Open(path) if err != nil { nonFatalError = err diff --git a/server/filemanager/test/fakestor.go b/server/filemanager/test/fakestor.go index 149697a..cf0a761 100644 --- a/server/filemanager/test/fakestor.go +++ b/server/filemanager/test/fakestor.go @@ -1,6 +1,6 @@ package test -import "github.com/fireeye/gocrack/server/storage" +import "github.com/mandiant/gocrack/server/storage" type TestEngineFileTxn struct { doc *storage.EngineFile diff --git a/server/notifications/notifications.go b/server/notifications/notifications.go index e219898..7f2d600 100644 --- a/server/notifications/notifications.go +++ b/server/notifications/notifications.go @@ -9,7 +9,7 @@ import ( "sync" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/rs/zerolog/log" gomail "gopkg.in/gomail.v2" diff --git a/server/rpc/client/beacon.go b/server/rpc/client/beacon.go index 0eb8574..7145633 100644 --- a/server/rpc/client/beacon.go +++ b/server/rpc/client/beacon.go @@ -1,6 +1,6 @@ package client -import "github.com/fireeye/gocrack/server/rpc" +import "github.com/mandiant/gocrack/server/rpc" // Beacon sends our current status to the server func (s *RPCClient) Beacon(beaconRequest rpc.BeaconRequest) (*rpc.BeaconResponse, error) { diff --git a/server/rpc/client/client_test.go b/server/rpc/client/client_test.go index 3f2d48a..e6b1cc9 100644 --- a/server/rpc/client/client_test.go +++ b/server/rpc/client/client_test.go @@ -6,7 +6,7 @@ import ( "sync" "testing" - "github.com/fireeye/gocrack/shared/pool" + "github.com/mandiant/gocrack/shared/pool" "github.com/stretchr/testify/assert" ) diff --git a/server/rpc/client/tasks.go b/server/rpc/client/tasks.go index 23f67db..751c74f 100644 --- a/server/rpc/client/tasks.go +++ b/server/rpc/client/tasks.go @@ -5,7 +5,7 @@ import ( "fmt" "io" - "github.com/fireeye/gocrack/server/rpc" + "github.com/mandiant/gocrack/server/rpc" ) // ChangeTaskStatus instructs the server to change the status of a task diff --git a/server/rpc/rpc.go b/server/rpc/rpc.go index 3df0d77..3e9e0e4 100644 --- a/server/rpc/rpc.go +++ b/server/rpc/rpc.go @@ -4,7 +4,7 @@ import ( "errors" "io" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/shared" ) // Config describes the configuration used by the GoCrack RPC Listener. diff --git a/server/rpc/rpc_beacon.go b/server/rpc/rpc_beacon.go index 41b656d..90f5df4 100644 --- a/server/rpc/rpc_beacon.go +++ b/server/rpc/rpc_beacon.go @@ -6,8 +6,8 @@ import ( "net/http" "time" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" "github.com/gin-gonic/gin" ) diff --git a/server/rpc/rpc_server.go b/server/rpc/rpc_server.go index 106e254..d586a14 100644 --- a/server/rpc/rpc_server.go +++ b/server/rpc/rpc_server.go @@ -7,10 +7,10 @@ import ( "net" "net/http" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/server/workmgr" - "github.com/fireeye/gocrack/shared" - "github.com/fireeye/gocrack/shared/ginlog" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/server/workmgr" + "github.com/mandiant/gocrack/shared" + "github.com/mandiant/gocrack/shared/ginlog" "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" diff --git a/server/rpc/rpc_tasks.go b/server/rpc/rpc_tasks.go index 0276de7..8400e1d 100644 --- a/server/rpc/rpc_tasks.go +++ b/server/rpc/rpc_tasks.go @@ -8,7 +8,7 @@ import ( "os" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" ) diff --git a/server/server.go b/server/server.go index 96b10fe..7e9be75 100644 --- a/server/server.go +++ b/server/server.go @@ -6,13 +6,13 @@ import ( "sync" "time" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/filemanager" - "github.com/fireeye/gocrack/server/notifications" - "github.com/fireeye/gocrack/server/rpc" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/server/web" - "github.com/fireeye/gocrack/server/workmgr" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/filemanager" + "github.com/mandiant/gocrack/server/notifications" + "github.com/mandiant/gocrack/server/rpc" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/server/web" + "github.com/mandiant/gocrack/server/workmgr" "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" diff --git a/server/storage/bdb/audit_log.go b/server/storage/bdb/audit_log.go index 4a5d504..dcd8cc1 100644 --- a/server/storage/bdb/audit_log.go +++ b/server/storage/bdb/audit_log.go @@ -1,7 +1,7 @@ package bdb import ( - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm/q" ) diff --git a/server/storage/bdb/audit_log_test.go b/server/storage/bdb/audit_log_test.go index f4c6ac3..427d4f8 100644 --- a/server/storage/bdb/audit_log_test.go +++ b/server/storage/bdb/audit_log_test.go @@ -5,15 +5,15 @@ import ( "testing" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" "github.com/stretchr/testify/assert" ) func generateRandomAuditEntry(entID string, userID string) storage.ActivityLogEntry { if userID == "" { - userID = uuid.NewV4().String() + userID = uuid.NewString() } return storage.ActivityLogEntry{ diff --git a/server/storage/bdb/engine_file.go b/server/storage/bdb/engine_file.go index 5bc436b..f59e05f 100644 --- a/server/storage/bdb/engine_file.go +++ b/server/storage/bdb/engine_file.go @@ -1,7 +1,7 @@ package bdb import ( - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm" "github.com/asdine/storm/q" diff --git a/server/storage/bdb/engine_file_txn.go b/server/storage/bdb/engine_file_txn.go index 2550f5d..0b2b920 100644 --- a/server/storage/bdb/engine_file_txn.go +++ b/server/storage/bdb/engine_file_txn.go @@ -3,7 +3,7 @@ package bdb import ( "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm" ) diff --git a/server/storage/bdb/entitlement.go b/server/storage/bdb/entitlement.go index 6a99254..3ec05dd 100644 --- a/server/storage/bdb/entitlement.go +++ b/server/storage/bdb/entitlement.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm" "github.com/asdine/storm/q" diff --git a/server/storage/bdb/entitlement_test.go b/server/storage/bdb/entitlement_test.go index 89fef8f..860f27e 100644 --- a/server/storage/bdb/entitlement_test.go +++ b/server/storage/bdb/entitlement_test.go @@ -4,9 +4,9 @@ import ( "testing" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" "github.com/stretchr/testify/assert" ) @@ -14,13 +14,13 @@ func TestEntitlement(t *testing.T) { db := initTest(t) defer db.DestroyTest() - dummyUUID := uuid.NewV4().String() + dummyUUID := uuid.NewString() taskFile := storage.TaskFile{ FileID: dummyUUID, SavedAt: "/tmp/foobaz", UploadedAt: time.Now(), UploadedBy: "testing", - UploadedByUUID: uuid.NewV4().String(), + UploadedByUUID: uuid.NewString(), } txn, err := db.NewTaskFileTransaction() @@ -36,7 +36,7 @@ func TestEntitlement(t *testing.T) { // We don't actually need to save this record dummyUserRec := storage.User{ - UserUUID: uuid.NewV4().String(), + UserUUID: uuid.NewString(), } // User shouldnt be entitled to this document...yet diff --git a/server/storage/bdb/helpers.go b/server/storage/bdb/helpers.go index 2c4d68e..1e1d282 100644 --- a/server/storage/bdb/helpers.go +++ b/server/storage/bdb/helpers.go @@ -3,7 +3,7 @@ package bdb import ( "errors" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm" ) diff --git a/server/storage/bdb/schemas.go b/server/storage/bdb/schemas.go index cf40946..73219d2 100644 --- a/server/storage/bdb/schemas.go +++ b/server/storage/bdb/schemas.go @@ -1,6 +1,6 @@ package bdb -import "github.com/fireeye/gocrack/server/storage" +import "github.com/mandiant/gocrack/server/storage" const ( curCrackTaskVer float32 = 1.1 diff --git a/server/storage/bdb/storage.go b/server/storage/bdb/storage.go index bcbf004..f0eaab5 100644 --- a/server/storage/bdb/storage.go +++ b/server/storage/bdb/storage.go @@ -1,7 +1,7 @@ package bdb import ( - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/prometheus/client_golang/prometheus" "github.com/asdine/storm" diff --git a/server/storage/bdb/storage_test.go b/server/storage/bdb/storage_test.go index 2e040fa..3565aeb 100644 --- a/server/storage/bdb/storage_test.go +++ b/server/storage/bdb/storage_test.go @@ -6,7 +6,7 @@ import ( "os" "path/filepath" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/stretchr/testify/assert" ) diff --git a/server/storage/bdb/storm_query_contains.go b/server/storage/bdb/storm_query_contains.go index d649df5..385f837 100644 --- a/server/storage/bdb/storm_query_contains.go +++ b/server/storage/bdb/storm_query_contains.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm" "github.com/asdine/storm/q" diff --git a/server/storage/bdb/task_checkpoint.go b/server/storage/bdb/task_checkpoint.go index f3384eb..ed79002 100644 --- a/server/storage/bdb/task_checkpoint.go +++ b/server/storage/bdb/task_checkpoint.go @@ -1,6 +1,6 @@ package bdb -import "github.com/fireeye/gocrack/server/storage" +import "github.com/mandiant/gocrack/server/storage" // SaveTaskCheckpoint implements storage.SaveTaskCheckpoint func (s *BoltBackend) SaveTaskCheckpoint(checkpoint storage.CheckpointFile) error { diff --git a/server/storage/bdb/task_create_txn.go b/server/storage/bdb/task_create_txn.go index 894822f..12be12a 100644 --- a/server/storage/bdb/task_create_txn.go +++ b/server/storage/bdb/task_create_txn.go @@ -3,7 +3,7 @@ package bdb import ( "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm" ) diff --git a/server/storage/bdb/task_file.go b/server/storage/bdb/task_file.go index a73a4e5..d4f0e42 100644 --- a/server/storage/bdb/task_file.go +++ b/server/storage/bdb/task_file.go @@ -1,7 +1,7 @@ package bdb import ( - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm" "github.com/asdine/storm/q" diff --git a/server/storage/bdb/task_file_test.go b/server/storage/bdb/task_file_test.go index 1539bf5..adb6607 100644 --- a/server/storage/bdb/task_file_test.go +++ b/server/storage/bdb/task_file_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/stretchr/testify/assert" ) diff --git a/server/storage/bdb/task_management.go b/server/storage/bdb/task_management.go index 6a26128..b8b1f1b 100644 --- a/server/storage/bdb/task_management.go +++ b/server/storage/bdb/task_management.go @@ -7,8 +7,8 @@ import ( "sort" "time" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" "github.com/asdine/storm" "github.com/asdine/storm/q" diff --git a/server/storage/bdb/task_management_test.go b/server/storage/bdb/task_management_test.go index aa61360..2f5fc7f 100644 --- a/server/storage/bdb/task_management_test.go +++ b/server/storage/bdb/task_management_test.go @@ -6,10 +6,10 @@ import ( "testing" "time" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" "github.com/stretchr/testify/assert" ) @@ -21,9 +21,9 @@ var testUnexpectedValInGetNextTestCmp = "expected next task differs from what wa func createTestJobDoc(t *testing.T, txn storage.CreateTaskTxn, userDoc *storage.User) (*storage.Task, error) { doc := &storage.Task{ - TaskID: uuid.NewV4().String(), + TaskID: uuid.NewString(), TaskName: "My Awesome Task!", - FileID: uuid.NewV4().String(), + FileID: uuid.NewString(), CreatedByUUID: userDoc.UserUUID, } return doc, txn.CreateTask(doc) @@ -117,12 +117,12 @@ func TestTaskManagementGetNextTaskForHost(t *testing.T) { { Tasks: []storage.Task{ { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing", CaseCode: shared.GetStrPtr("CC-1337"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC(), AssignedToHost: "my-hostname", AssignedToDevices: &storage.CLDevices{4, 5}, @@ -139,12 +139,12 @@ func TestTaskManagementGetNextTaskForHost(t *testing.T) { { Tasks: []storage.Task{ { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing", CaseCode: shared.GetStrPtr("CC-1337"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC(), AssignedToHost: "my-hostname", AssignedToDevices: &storage.CLDevices{4, 5}, @@ -160,12 +160,12 @@ func TestTaskManagementGetNextTaskForHost(t *testing.T) { { Tasks: []storage.Task{ { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing", CaseCode: shared.GetStrPtr("CC-1337"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC(), AssignedToDevices: &storage.CLDevices{4, 5}, }, @@ -180,21 +180,21 @@ func TestTaskManagementGetNextTaskForHost(t *testing.T) { { Tasks: []storage.Task{ { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing", CaseCode: shared.GetStrPtr("CC-1337"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC().Add(-time.Duration(time.Hour * 4)), }, { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing2", CaseCode: shared.GetStrPtr("CC-1338"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC(), }, }, @@ -208,12 +208,12 @@ func TestTaskManagementGetNextTaskForHost(t *testing.T) { { Tasks: []storage.Task{ { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing", CaseCode: shared.GetStrPtr("CC-1337"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC().Add(-time.Duration(time.Hour * 4)), Status: storage.TaskStatusFinished, }, @@ -225,22 +225,22 @@ func TestTaskManagementGetNextTaskForHost(t *testing.T) { { Tasks: []storage.Task{ { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing", CaseCode: shared.GetStrPtr("CC-1337"), - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedBy: "testing", CreatedAt: time.Now().UTC().Add(-time.Duration(time.Hour * 4)), Priority: storage.WorkerPriorityNormal, }, { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing2", CaseCode: shared.GetStrPtr("CC-1338"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC(), Priority: storage.WorkerPriorityHigh, }, @@ -304,26 +304,26 @@ func TestTaskManagementProperlyQueueingTasks(t *testing.T) { db := initTest(t) defer db.DestroyTest() - firstTaskID := uuid.NewV4().String() + firstTaskID := uuid.NewString() tasks := []storage.Task{ { - FileID: uuid.NewV4().String(), + FileID: uuid.NewString(), TaskID: firstTaskID, TaskName: "Testing", CaseCode: shared.GetStrPtr("CC-1337"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC(), AssignedToHost: "my-hostname", AssignedToDevices: &storage.CLDevices{4, 5}, }, { - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing 2", CaseCode: shared.GetStrPtr("CC-1337"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC().Add(1 * time.Minute), AssignedToDevices: &storage.CLDevices{5}, }, @@ -367,12 +367,12 @@ func TestDeleteTask(t *testing.T) { defer db.DestroyTest() doc := storage.Task{ - FileID: uuid.NewV4().String(), - TaskID: uuid.NewV4().String(), + FileID: uuid.NewString(), + TaskID: uuid.NewString(), TaskName: "Testing", CaseCode: shared.GetStrPtr("CC-1337"), CreatedBy: "testing", - CreatedByUUID: uuid.NewV4().String(), + CreatedByUUID: uuid.NewString(), CreatedAt: time.Now().UTC(), AssignedToHost: "my-hostname", AssignedToDevices: &storage.CLDevices{4, 5}, diff --git a/server/storage/bdb/user.go b/server/storage/bdb/user.go index f07364a..c9ba2e9 100644 --- a/server/storage/bdb/user.go +++ b/server/storage/bdb/user.go @@ -3,10 +3,10 @@ package bdb import ( "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/asdine/storm" - "github.com/satori/go.uuid" + "github.com/google/uuid" ) // SearchForUserByPassword locates the user record by username. If a record is found, the checker function will be called to validate the password. @@ -27,7 +27,7 @@ func (s *BoltBackend) SearchForUserByPassword(username string, checker storage.P func (s *BoltBackend) CreateUser(user *storage.User) (err error) { user.CreatedAt = time.Now().UTC() if user.UserUUID == "" { - user.UserUUID = uuid.NewV4().String() + user.UserUUID = uuid.NewString() } if err = s.db.From("users").Save(&boltUser{User: *user, DocVersion: curUserVer}); err != nil { diff --git a/server/storage/bdb/user_test.go b/server/storage/bdb/user_test.go index 7fbf328..2da5dc0 100644 --- a/server/storage/bdb/user_test.go +++ b/server/storage/bdb/user_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/stretchr/testify/assert" ) diff --git a/server/storage/opencl_type.go b/server/storage/opencl_type.go index 482139e..5f1b355 100644 --- a/server/storage/opencl_type.go +++ b/server/storage/opencl_type.go @@ -5,7 +5,7 @@ import ( "encoding/json" "errors" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/shared" ) // CLDevices is a list of OpenCL device ID's that a task will use on a specific host diff --git a/server/storage_driver_bdb.go b/server/storage_driver_bdb.go index abd43d0..7e264ed 100644 --- a/server/storage_driver_bdb.go +++ b/server/storage_driver_bdb.go @@ -1,5 +1,6 @@ +//go:build stor_bdb // +build stor_bdb package server -import _ "github.com/fireeye/gocrack/server/storage/bdb" +import _ "github.com/mandiant/gocrack/server/storage/bdb" diff --git a/server/storage_driver_default.go b/server/storage_driver_default.go index 7fa6728..1fd84d2 100644 --- a/server/storage_driver_default.go +++ b/server/storage_driver_default.go @@ -1,5 +1,6 @@ +//go:build !stor_bdb && !stor_sql // +build !stor_bdb,!stor_sql package server -import _ "github.com/fireeye/gocrack/server/storage/bdb" +import _ "github.com/mandiant/gocrack/server/storage/bdb" diff --git a/server/web/api.go b/server/web/api.go index d45c7cb..6ee2bfe 100644 --- a/server/web/api.go +++ b/server/web/api.go @@ -7,11 +7,11 @@ import ( "net" "net/http" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/filemanager" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/server/workmgr" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/filemanager" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/server/workmgr" + "github.com/mandiant/gocrack/shared" ) var ( diff --git a/server/web/audit_log.go b/server/web/audit_log.go index 2a91a04..2b6f237 100644 --- a/server/web/audit_log.go +++ b/server/web/audit_log.go @@ -6,7 +6,7 @@ import ( "net/http" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" ) diff --git a/server/web/auth.go b/server/web/auth.go index 52abbba..6639f41 100644 --- a/server/web/auth.go +++ b/server/web/auth.go @@ -5,8 +5,8 @@ import ( "net/http" "time" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" ) diff --git a/server/web/config.go b/server/web/config.go index 97a13af..03205af 100644 --- a/server/web/config.go +++ b/server/web/config.go @@ -4,7 +4,7 @@ import ( "errors" "time" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/shared" ) type corsSettings struct { diff --git a/server/web/engine_specific_hashcat.go b/server/web/engine_specific_hashcat.go index 49e1619..c49c104 100644 --- a/server/web/engine_specific_hashcat.go +++ b/server/web/engine_specific_hashcat.go @@ -3,11 +3,23 @@ package web import ( "net/http" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocat/v6/types" + "github.com/mandiant/gocrack/shared" "github.com/gin-gonic/gin" ) func (s *Server) apiHashcatGetTaskModes(c *gin.Context) { - c.JSON(http.StatusOK, shared.SupportedHashcatModes) + hashTypes := types.SupportedHashes() + + out := make([]shared.HModeInfo, len(hashTypes)) + for i, ht := range hashTypes { + out[i] = shared.HModeInfo{ + Name: ht.Name, + Example: ht.Example, + Number: ht.Type, + } + } + + c.JSON(http.StatusOK, out) } diff --git a/server/web/file_management_delete.go b/server/web/file_management_delete.go index ceb3f05..30d8434 100644 --- a/server/web/file_management_delete.go +++ b/server/web/file_management_delete.go @@ -4,8 +4,8 @@ import ( "errors" "net/http" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" "github.com/gin-gonic/gin" ) diff --git a/server/web/file_management_engine.go b/server/web/file_management_engine.go index 0df1967..70bb399 100644 --- a/server/web/file_management_engine.go +++ b/server/web/file_management_engine.go @@ -9,11 +9,11 @@ import ( "strings" "time" - "github.com/fireeye/gocrack/server/filemanager" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/filemanager" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" ) type FileType storage.EngineFileType @@ -86,7 +86,7 @@ func (s *Server) webUploadEngineFile(c *gin.Context) *WebAPIError { sf := storage.EngineFile{ FileName: c.Param("filename"), UploadedByUUID: claim.UserUUID, - FileID: uuid.NewV4().String(), + FileID: uuid.NewString(), IsShared: isShared, } diff --git a/server/web/file_management_task.go b/server/web/file_management_task.go index 7872106..5b22da3 100644 --- a/server/web/file_management_task.go +++ b/server/web/file_management_task.go @@ -1,6 +1,7 @@ package web import ( + "bufio" "fmt" "io" "mime/multipart" @@ -10,11 +11,11 @@ import ( "strings" "time" - "github.com/fireeye/gocat" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" + "github.com/tankbusta/hashvalidate" ) type APIEngine storage.TaskFileEngine @@ -110,7 +111,7 @@ func (s *Server) webUploadTaskFile(c *gin.Context) *WebAPIError { FileName: c.Param("filename"), UploadedAt: time.Now().UTC(), UploadedByUUID: claim.UserUUID, - FileID: uuid.NewV4().String(), + FileID: uuid.NewString(), } engineTypeStr, _ := c.GetQuery("engine") @@ -152,26 +153,54 @@ func (s *Server) webUploadTaskFile(c *gin.Context) *WebAPIError { } } - vresults, err := gocat.ValidateHashes(fresp.SavedTo, uint32(ftint)) + file, err := os.Open(fresp.SavedTo) if err != nil { os.Remove(fresp.SavedTo) return &WebAPIError{ StatusCode: http.StatusInternalServerError, + UserError: "Could not verify hashes", Err: err, - UserError: "Could not validate your file", } } + defer file.Close() + + hashes := 0 + errors := make([]string, 0) + scanner := bufio.NewScanner(file) + for scanner.Scan() { + val := scanner.Text() + if err := hashvalidate.ValidateHash(ftint, val); err != nil { + // TODO: We should raise some warning here + if strings.Contains(err.Error(), "does not exist") { + continue + } + + errors = append(errors, err.Error()) + continue + } + + hashes++ + } - if vresults != nil && len(vresults.Errors) > 0 { + if err := scanner.Err(); err != nil { + os.Remove(fresp.SavedTo) + return &WebAPIError{ + StatusCode: http.StatusInternalServerError, + UserError: "Could not verify hashes", + Err: err, + } + } + + if len(errors) > 0 { os.Remove(fresp.SavedTo) c.JSON(http.StatusBadRequest, &TaskFileLintError{ - Errors: vresults.Errors, + Errors: errors, Message: "One or more hashes in the file are not valid for the filetype you have selected", }) return nil } - tf.NumberOfPasswords = int(vresults.NumHashesUnique) - tf.NumberOfSalts = int(vresults.NumSalts) + + tf.NumberOfPasswords = hashes } if txn, err = s.stor.NewTaskFileTransaction(); err != nil { diff --git a/server/web/middlewares.go b/server/web/middlewares.go index a8be5d6..05d39b6 100644 --- a/server/web/middlewares.go +++ b/server/web/middlewares.go @@ -4,12 +4,12 @@ import ( "net/http" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" + "github.com/google/uuid" "github.com/gorilla/csrf" "github.com/rs/zerolog/log" - uuid "github.com/satori/go.uuid" ) // logAction records potentially sensitive actions to the database for auditing purposes @@ -140,7 +140,7 @@ func (s *Server) checkIfUserIsEntitled(entityIDLookup string, documentType stora func checkParamValidUUID(paramName string) gin.HandlerFunc { return func(c *gin.Context) { if uid := c.Param(paramName); uid != "" { - if _, err := uuid.FromString(uid); err != nil { + if _, err := uuid.Parse(uid); err != nil { goto Error } // UUID checks out diff --git a/server/web/middlewares_test.go b/server/web/middlewares_test.go index b235272..9587a72 100644 --- a/server/web/middlewares_test.go +++ b/server/web/middlewares_test.go @@ -7,8 +7,8 @@ import ( "net/http/httptest" "testing" - "github.com/fireeye/gocrack/server/authentication" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" + "github.com/mandiant/gocrack/server/authentication" "github.com/gin-gonic/gin" "github.com/stretchr/testify/assert" @@ -68,7 +68,7 @@ func TestInternal_checkParamValidUUID(t *testing.T) { assert.Equal(t, "The UUID in the HTTP Path is not valid", ae.Error) // Make a good one! - req, _ = http.NewRequest("GET", fmt.Sprintf("/test/%s", uuid.NewV4().String()), nil) + req, _ = http.NewRequest("GET", fmt.Sprintf("/test/%s", uuid.NewString()), nil) w = httptest.NewRecorder() e.ServeHTTP(w, req) diff --git a/server/web/server.go b/server/web/server.go index 9f14bdb..4d9faf5 100644 --- a/server/web/server.go +++ b/server/web/server.go @@ -6,10 +6,10 @@ import ( "path/filepath" "strings" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" - "github.com/fireeye/gocrack/shared/ginlog" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" + "github.com/mandiant/gocrack/shared/ginlog" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" diff --git a/server/web/server_version.go b/server/web/server_version.go index 1aeb0eb..0227e20 100644 --- a/server/web/server_version.go +++ b/server/web/server_version.go @@ -3,7 +3,7 @@ package web import ( "net/http" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/shared" "github.com/gin-gonic/gin" ) diff --git a/server/web/sse_endpoint.go b/server/web/sse_endpoint.go index efb6dc8..3a53de7 100644 --- a/server/web/sse_endpoint.go +++ b/server/web/sse_endpoint.go @@ -8,9 +8,9 @@ import ( "sync" "time" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/server/workmgr" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/server/workmgr" "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" diff --git a/server/web/task_management.go b/server/web/task_management.go index 188f7e2..23244c1 100644 --- a/server/web/task_management.go +++ b/server/web/task_management.go @@ -8,11 +8,11 @@ import ( "strings" "time" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" "github.com/gin-gonic/gin" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" ) type TaskCrackEngineFancy storage.WorkerCrackEngine @@ -160,7 +160,7 @@ func (s CreateTaskRequest) validate() []string { errs = append(errs, "task_name must not be empty") } - if _, err := uuid.FromString(s.FileID); err != nil { + if _, err := uuid.Parse(s.FileID); err != nil { errs = append(errs, "file_id must be a valid UUID") } @@ -241,7 +241,7 @@ func (s *Server) webCreateTask(c *gin.Context) *WebAPIError { task = storage.Task{ TaskName: request.TaskName, - TaskID: uuid.NewV4().String(), + TaskID: uuid.NewString(), CreatedAt: now, CreatedByUUID: claim.UserUUID, LastUpdatedAt: now, diff --git a/server/web/task_management_delete.go b/server/web/task_management_delete.go index 505fb34..95146ee 100644 --- a/server/web/task_management_delete.go +++ b/server/web/task_management_delete.go @@ -4,7 +4,7 @@ import ( "fmt" "net/http" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" ) diff --git a/server/web/task_management_entitlements.go b/server/web/task_management_entitlements.go index 1fac357..30887a5 100644 --- a/server/web/task_management_entitlements.go +++ b/server/web/task_management_entitlements.go @@ -4,7 +4,7 @@ import ( "net/http" "time" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" ) diff --git a/server/web/task_management_helpers.go b/server/web/task_management_helpers.go index 4de61a5..035920a 100644 --- a/server/web/task_management_helpers.go +++ b/server/web/task_management_helpers.go @@ -3,8 +3,8 @@ package web import ( "fmt" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" ) func setEngineFile(stor storage.Backend, engineFileID string) *EngineFileItem { @@ -58,11 +58,9 @@ func convertStorageTaskToItem(stor storage.Backend, t storage.Task) TaskInfoResp hcitem.AttackMode = "Unknown" } - if htype := shared.LookupHashcatHashType(ep.HashType); htype != nil { - hcitem.HashType = htype.Name - } else { - hcitem.HashType = fmt.Sprintf("Unknown HashType %d", ep.HashType) - } + // TODO: Due to some duplicate hash type IDs, we need to come back to this + hcitem.HashType = fmt.Sprintf("Type %d", ep.HashType) + item.EnginePayload = hcitem default: item.EnginePayload = ep diff --git a/server/web/users.go b/server/web/users.go index 81d988b..a0e7c67 100644 --- a/server/web/users.go +++ b/server/web/users.go @@ -7,8 +7,8 @@ import ( "strings" "time" - "github.com/fireeye/gocrack/server/authentication" - "github.com/fireeye/gocrack/server/storage" + "github.com/mandiant/gocrack/server/authentication" + "github.com/mandiant/gocrack/server/storage" "github.com/gin-gonic/gin" ) @@ -245,8 +245,8 @@ func (s *Server) webRegisterNewUser(c *gin.Context) *WebAPIError { if err := req.Validate(); err != nil { return &WebAPIError{ - StatusCode: http.StatusBadRequest, - Err: err, + StatusCode: http.StatusBadRequest, + Err: err, CanErrorBeShownToUser: true, } } diff --git a/server/web/workers.go b/server/web/workers.go index 0fcd4f0..24c4712 100644 --- a/server/web/workers.go +++ b/server/web/workers.go @@ -5,7 +5,7 @@ import ( "net/http" "time" - "github.com/fireeye/gocrack/opencl" + "github.com/mandiant/gocrack/opencl" "github.com/gin-gonic/gin" ) diff --git a/server/workmgr/config.go b/server/workmgr/config.go index 607a008..7dea400 100644 --- a/server/workmgr/config.go +++ b/server/workmgr/config.go @@ -1,6 +1,6 @@ package workmgr -import "github.com/fireeye/gocrack/shared" +import "github.com/mandiant/gocrack/shared" // Config defines all the configuration settings for the Work/Job Manager type Config struct { diff --git a/server/workmgr/workmgr.go b/server/workmgr/workmgr.go index 91d91a5..9fe2fe9 100644 --- a/server/workmgr/workmgr.go +++ b/server/workmgr/workmgr.go @@ -4,8 +4,8 @@ import ( "sync" "time" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" "github.com/tchap/go-exchange/exchange" ) diff --git a/server/workmgr/workmgr_test.go b/server/workmgr/workmgr_test.go index 0f9e3a6..490c84a 100644 --- a/server/workmgr/workmgr_test.go +++ b/server/workmgr/workmgr_test.go @@ -6,9 +6,9 @@ import ( "github.com/stretchr/testify/suite" - "github.com/fireeye/gocrack/opencl" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/opencl" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" ) type TestWorkManagerSuite struct { diff --git a/shared/hashcat_types.go b/shared/hashcat_types.go index 066c38a..150e48a 100644 --- a/shared/hashcat_types.go +++ b/shared/hashcat_types.go @@ -21,1382 +21,7 @@ type HashcatUserOptions struct { // HModeInfo describes the hashcat mode type HModeInfo struct { - Number int `json:"mode"` - Name string `json:"name"` - Category string `json:"category"` - Example string `json:"example,omitempty"` -} - -// SupportedHashcatModes is a list of all the supported hashcat cracking SupportedHashcatModes -// This is manually generated and is up-to-date as of v3.40 -var SupportedHashcatModes = []HModeInfo{ - { - Number: 900, - Name: "MD4", - Category: "Raw Hash", - }, - { - Number: 0, - Name: "MD5", - Category: "Raw Hash", - Example: "8743b52063cd84097a65d1633f5c74f5", - }, - { - Number: 5100, - Name: "Half MD5", - Category: "Raw Hash", - }, - { - Number: 100, - Name: "SHA1", - Category: "Raw Hash", - Example: "b89eaac7e61417341b710b727768294d0e6a277b", - }, - { - Number: 1300, - Name: "SHA-224", - Category: "Raw Hash", - }, - { - Number: 1400, - Name: "SHA-256", - Category: "Raw Hash", - }, - { - Number: 10800, - Name: "SHA-384", - Category: "Raw Hash", - }, - { - Number: 1700, - Name: "SHA-512", - Category: "Raw Hash", - }, - { - Number: 17300, - Name: "SHA3-224", - Category: "Raw Hash", - }, - { - Number: 17400, - Name: "SHA3-256", - Category: "Raw Hash", - }, - { - Number: 17500, - Name: "SHA3-384", - Category: "Raw Hash", - }, - { - Number: 17600, - Name: "SHA3-512", - Category: "Raw Hash", - }, - { - Number: 17700, - Name: "Keccak-224", - Category: "Raw Hash", - }, - { - Number: 17800, - Name: "Keccak-256", - Category: "Raw Hash", - }, - { - Number: 17900, - Name: "Keccak-384", - Category: "Raw Hash", - }, - { - Number: 18000, - Name: "Keccak-512", - Category: "Raw Hash", - }, - { - Number: 600, - Name: "BLAKE2b-512", - Category: "Raw Hash", - }, - { - Number: 10100, - Name: "SipHash", - Category: "Raw Hash", - }, - { - Number: 6000, - Name: "RipeMD160", - Category: "Raw Hash", - }, - { - Number: 6100, - Name: "Whirlpool", - Category: "Raw Hash", - }, - { - Number: 6900, - Name: "GOST R 34.11-94", - Category: "Raw Hash", - }, - { - Number: 11700, - Name: "GOST R 34.11-2012 (Streebog) 256-bit, big-endian", - Category: "Raw Hash", - }, - { - Number: 11800, - Name: "GOST R 34.11-2012 (Streebog) 512-bit, big-endian", - Category: "Raw Hash", - }, - { - Number: 10, - Name: "md5($pass.$salt)", - Category: "Raw Hash, Salted and / or Iterated", - Example: "01dfae6e5d4d90d9892622325959afbe:7050461", - }, - { - Number: 20, - Name: "md5($salt.$pass)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 30, - Name: "md5(unicode($pass).$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 40, - Name: "md5($salt.unicode($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 3800, - Name: "md5($salt.$pass.$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 3710, - Name: "md5($salt.md5($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 4010, - Name: "md5($salt.md5($salt.$pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 4110, - Name: "md5($salt.md5($pass.$salt))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 2600, - Name: "md5(md5($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 3910, - Name: "md5(md5($pass).md5($salt))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 4300, - Name: "md5(strtoupper(md5($pass)))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 4400, - Name: "md5(sha1($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 110, - Name: "sha1($pass.$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 120, - Name: "sha1($salt.$pass)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 130, - Name: "sha1(unicode($pass).$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 140, - Name: "sha1($salt.unicode($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 4500, - Name: "sha1(sha1($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 4520, - Name: "sha1($salt.sha1($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 4700, - Name: "sha1(md5($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 4900, - Name: "sha1($salt.$pass.$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 14400, - Name: "sha1(CX)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 1410, - Name: "sha256($pass.$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 1420, - Name: "sha256($salt.$pass)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 1430, - Name: "sha256(unicode($pass).$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 1440, - Name: "sha256($salt.unicode($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 1710, - Name: "sha512($pass.$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 1720, - Name: "sha512($salt.$pass)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 1730, - Name: "sha512(unicode($pass).$salt)", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 1740, - Name: "sha512($salt.unicode($pass))", - Category: "Raw Hash, Salted and / or Iterated", - }, - { - Number: 50, - Name: "HMAC-MD5 (key = $pass)", - Category: "Raw Hash, Authenticated", - }, - { - Number: 60, - Name: "HMAC-MD5 (key = $salt)", - Category: "Raw Hash, Authenticated", - }, - { - Number: 150, - Name: "HMAC-SHA1 (key = $pass)", - Category: "Raw Hash, Authenticated", - }, - { - Number: 160, - Name: "HMAC-SHA1 (key = $salt)", - Category: "Raw Hash, Authenticated", - }, - { - Number: 1450, - Name: "HMAC-SHA256 (key = $pass)", - Category: "Raw Hash, Authenticated", - }, - { - Number: 1460, - Name: "HMAC-SHA256 (key = $salt)", - Category: "Raw Hash, Authenticated", - }, - { - Number: 1750, - Name: "HMAC-SHA512 (key = $pass)", - Category: "Raw Hash, Authenticated", - }, - { - Number: 1760, - Name: "HMAC-SHA512 (key = $salt)", - Category: "Raw Hash, Authenticated", - }, - { - Number: 11750, - Name: "HMAC-Streebog-256 (key = $pass), big-endian", - Category: "Raw Hash, Authenticated", - }, - { - Number: 11760, - Name: "HMAC-Streebog-256 (key = $salt), big-endian", - Category: "Raw Hash, Authenticated", - }, - { - Number: 11850, - Name: "HMAC-Streebog-512 (key = $pass), big-endian", - Category: "Raw Hash, Authenticated", - }, - { - Number: 11860, - Name: "HMAC-Streebog-512 (key = $salt), big-endian", - Category: "Raw Hash, Authenticated", - }, - { - Number: 14000, - Name: "DES (PT = $salt, key = $pass)", - Category: "Raw Cipher, Known-Plaintext attack", - }, - { - Number: 14100, - Name: "3DES (PT = $salt, key = $pass)", - Category: "Raw Cipher, Known-Plaintext attack", - }, - { - Number: 14900, - Name: "Skip32 (PT = $salt, key = $pass)", - Category: "Raw Cipher, Known-Plaintext attack", - }, - { - Number: 400, - Name: "phpass", - Category: "Generic KDF", - }, - { - Number: 8900, - Name: "scrypt", - Category: "Generic KDF", - }, - { - Number: 11900, - Name: "PBKDF2-HMAC-MD5", - Category: "Generic KDF", - }, - { - Number: 12000, - Name: "PBKDF2-HMAC-SHA1", - Category: "Generic KDF", - }, - { - Number: 10900, - Name: "PBKDF2-HMAC-SHA256", - Category: "Generic KDF", - }, - { - Number: 12100, - Name: "PBKDF2-HMAC-SHA512", - Category: "Generic KDF", - }, - { - Number: 23, - Name: "Skype", - Category: "Network protocols", - }, - { - Number: 2500, - Name: "WPA-EAPOL-PBKDF2", - Category: "Network protocols", - }, - { - Number: 2501, - Name: "WPA-EAPOL-PMK", - Category: "Network protocols", - }, - { - Number: 16800, - Name: "WPA-PMKID-PBKDF2", - Category: "Network protocols", - }, - { - Number: 16801, - Name: "WPA-PMKID-PMK", - Category: "Network protocols", - }, - { - Number: 4800, - Name: "iSCSI CHAP authentication, MD5(Chap)", - Category: "Network protocols", - }, - { - Number: 5300, - Name: "IKE-PSK MD5", - Category: "Network protocols", - }, - { - Number: 5400, - Name: "IKE-PSK SHA1", - Category: "Network protocols", - }, - { - Number: 5500, - Name: "NetNTLMv1 / NetNTLMv1 + ESS", - Category: "Network protocols", - Example: "u4-netntlm::kNS:338d08f8e26de93300000000000000000000000000000000:9526fb8c23a90751cdd619b6cea564742e1e4bf33006ba41:cb8086049ec4736c", - }, - { - Number: 5600, - Name: "NetNTLMv2", - Category: "Network protocols", - Example: "admin::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030", - }, - { - Number: 7300, - Name: "IPMI2 RAKP HMAC-SHA1", - Category: "Network protocols", - }, - { - Number: 7500, - Name: "Kerberos 5 AS-REQ Pre-Auth etype 23", - Category: "Network protocols", - }, - { - Number: 8300, - Name: "DNSSEC (NSEC3)", - Category: "Network protocols", - }, - { - Number: 10200, - Name: "Cram MD5", - Category: "Network protocols", - }, - { - Number: 11100, - Name: "PostgreSQL CRAM (MD5)", - Category: "Network protocols", - }, - { - Number: 11200, - Name: "MySQL CRAM (SHA1)", - Category: "Network protocols", - }, - { - Number: 11400, - Name: "SIP digest authentication (MD5)", - Category: "Network protocols", - }, - { - Number: 13100, - Name: "Kerberos 5 TGS-REP etype 23", - Category: "Network protocols", - Example: "$krb5tgs$23$*user$realm$test/spn*$63386d22d359fe42230300d56852c9eb$891ad31d09ab89c6b3b8c5e5de6c06a7f49fd559d7a9a3c32576c8fedf705376cea582ab5938f7fc8bc741acf05c5990741b36ef4311fe3562a41b70a4ec6ecba849905f2385bb3799d92499909658c7287c49160276bca0006c350b0db4fd387adc27c01e9e9ad0c20ed53a7e6356dee2452e35eca2a6a1d1432796fc5c19d068978df74d3d0baf35c77de12456bf1144b6a750d11f55805f5a16ece2975246e2d026dce997fba34ac8757312e9e4e6272de35e20d52fb668c5ed", - }, - { - Number: 16100, - Name: "TACACS+", - Category: "Network protocols", - }, - { - Number: 16500, - Name: "JWT (JSON Web Token)", - Category: "Network protocols", - }, - { - Number: 18200, - Name: "Kerberos 5 AS-REP etype 23", - Category: "Network protocols", - }, - { - Number: 121, - Name: "SMF (Simple Machines Forum)", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 400, - Name: "phpBB3", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 2611, - Name: "vBulletin < v3.8.5", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 2711, - Name: "vBulletin > v3.8.5", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 2811, - Name: "MyBB", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 2811, - Name: "IPB (Invison Power Board)", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 8400, - Name: "WBB3 (Woltlab Burning Board)", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 11, - Name: "Joomla < 2.5.18", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 400, - Name: "Joomla > 2.5.18", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 400, - Name: "Wordpress", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 2612, - Name: "PHPS", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 7900, - Name: "Drupal7", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 21, - Name: "osCommerce", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 21, - Name: "xt:Commerce", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 11000, - Name: "PrestaShop", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 124, - Name: "Django (SHA-1)", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 10000, - Name: "Django (PBKDF2-SHA256)", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 16000, - Name: "Tripcode", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 3711, - Name: "Mediawiki B type", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 13900, - Name: "OpenCart", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 4521, - Name: "Redmine", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 4522, - Name: "PunBB", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 12001, - Name: "Atlassian (PBKDF2-HMAC-SHA1)", - Category: "Forums, CMS, E-Commerce, Frameworks", - }, - { - Number: 12, - Name: "PostgreSQL", - Category: "Database Server", - }, - { - Number: 131, - Name: "MSSQL(2000)", - Category: "Database Server", - }, - { - Number: 132, - Name: "MSSQL(2005)", - Category: "Database Server", - }, - { - Number: 1731, - Name: "MSSQL(2012)", - Category: "Database Server", - }, - { - Number: 1731, - Name: "MSSQL(2014)", - Category: "Database Server", - }, - { - Number: 200, - Name: "MySQL323", - Category: "Database Server", - }, - { - Number: 300, - Name: "MySQL4.1/MySQL5", - Category: "Database Server", - }, - { - Number: 3100, - Name: "Oracle H: Type (Oracle 7+)", - Category: "Database Server", - }, - { - Number: 112, - Name: "Oracle S: Type (Oracle 11+)", - Category: "Database Server", - }, - { - Number: 12300, - Name: "Oracle T: Type (Oracle 12+)", - Category: "Database Server", - }, - { - Number: 8000, - Name: "Sybase ASE", - Category: "Database Server", - }, - { - Number: 141, - Name: "EPiServer 6.x < v4", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 1441, - Name: "EPiServer 6.x > v4", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 1600, - Name: "Apache $apr1$", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 12600, - Name: "ColdFusion 10+", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 1421, - Name: "hMailServer", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 101, - Name: "nsldap, SHA-1(Base64), Netscape LDAP SHA", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 111, - Name: "nsldaps, SSHA-1(Base64), Netscape LDAP SSHA", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 1411, - Name: "SSHA-256(Base64), LDAP {SSHA256}", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 1711, - Name: "SSHA-512(Base64), LDAP {SSHA512}", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 16400, - Name: "CRAM-MD5 Dovecot", - Category: "HTTP, SMTP, LDAP Server", - }, - { - Number: 15000, - Name: "FileZilla Server >= 0.9.55", - Category: "FTP Server", - }, - { - Number: 11500, - Name: "CRC32", - Category: "Checksums", - }, - { - Number: 3000, - Name: "LM", - Category: "Operating-Systems", - Example: "299bd128c1101fd6", - }, - { - Number: 1000, - Name: "NTLM", - Category: "Operating-Systems", - Example: "b4b9b02e6f09a9bd760f388b67351e2b", - }, - { - Number: 1100, - Name: "Domain Cached Credentials (DCC), MS Cache", - Category: "Operating-Systems", - }, - { - Number: 2100, - Name: "Domain Cached Credentials 2 (DCC2), MS Cache 2", - Category: "Operating-Systems", - }, - { - Number: 12800, - Name: "MS-AzureSync PBKDF2-HMAC-SHA256", - Category: "Operating-Systems", - }, - { - Number: 1500, - Name: "descrypt, DES(Unix), Traditional DES", - Category: "Operating-Systems", - }, - { - Number: 12400, - Name: "BSDiCrypt, Extended DES", - Category: "Operating-Systems", - }, - { - Number: 500, - Name: "md5crypt $1$, MD5(Unix)", - Category: "Operating-Systems", - }, - { - Number: 3200, - Name: "bcrypt $2*$, Blowfish(Unix)", - Category: "Operating-Systems", - Example: "$2a$05$LhayLxezLhK1LhWvKxCyLOj0j1u.Kj0jZ0pEmm134uzrQlFvQJLF6", - }, - { - Number: 7400, - Name: "sha256crypt $5$, SHA256(Unix)", - Category: "Operating-Systems", - }, - { - Number: 1800, - Name: "sha512crypt $6$, SHA512(Unix)", - Category: "Operating-Systems", - }, - { - Number: 122, - Name: "macOS v10.4, MacOS v10.5, MacOS v10.6", - Category: "Operating-Systems", - }, - { - Number: 1722, - Name: "macOS v10.7", - Category: "Operating-Systems", - }, - { - Number: 7100, - Name: "macOS v10.8+ (PBKDF2-SHA512)", - Category: "Operating-Systems", - }, - { - Number: 6300, - Name: "AIX {smd5}", - Category: "Operating-Systems", - }, - { - Number: 6700, - Name: "AIX {ssha1}", - Category: "Operating-Systems", - }, - { - Number: 6400, - Name: "AIX {ssha256}", - Category: "Operating-Systems", - }, - { - Number: 6500, - Name: "AIX {ssha512}", - Category: "Operating-Systems", - }, - { - Number: 2400, - Name: "Cisco-PIX", - Category: "Operating-Systems", - }, - { - Number: 2410, - Name: "Cisco-ASA", - Category: "Operating-Systems", - }, - { - Number: 500, - Name: "Cisco-IOS $1$", - Category: "Operating-Systems", - }, - { - Number: 5700, - Name: "Cisco-IOS $4$", - Category: "Operating-Systems", - }, - { - Number: 9200, - Name: "Cisco-IOS $8$", - Category: "Operating-Systems", - }, - { - Number: 9300, - Name: "Cisco-IOS $9$", - Category: "Operating-Systems", - }, - { - Number: 22, - Name: "Juniper Netscreen/SSG (ScreenOS)", - Category: "Operating-Systems", - }, - { - Number: 501, - Name: "Juniper IVE", - Category: "Operating-Systems", - }, - { - Number: 7000, - Name: "Fortigate (FortiOS)", - Category: "Operating-Systems", - }, - { - Number: 5800, - Name: "Android PIN", - Category: "Operating-Systems", - }, - { - Number: 13800, - Name: "Windows 8+ phone PIN/Password", - Category: "Operating-Systems", - }, - { - Number: 8100, - Name: "Citrix Netscaler", - Category: "Operating-Systems", - }, - { - Number: 8500, - Name: "RACF", - Category: "Operating-Systems", - }, - { - Number: 7200, - Name: "GRUB 2", - Category: "Operating-Systems", - }, - { - Number: 9900, - Name: "Radmin2", - Category: "Operating-Systems", - }, - { - Number: 125, - Name: "ArubaOS", - Category: "Operating-Systems", - }, - { - Number: 7700, - Name: "SAP CODVN B (BCODE)", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 7701, - Name: "SAP CODVN B (BCODE) via RFC_READ_TABLE", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 7800, - Name: "SAP CODVN F/G (PASSCODE)", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 7801, - Name: "SAP CODVN F/G (PASSCODE) via RFC_READ_TABLE", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 10300, - Name: "SAP CODVN H (PWDSALTEDHASH) iSSHA-1", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 8600, - Name: "Lotus Notes/Domino 5", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 8700, - Name: "Lotus Notes/Domino 6", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 9100, - Name: "Lotus Notes/Domino 8", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 133, - Name: "PeopleSoft", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 13500, - Name: "PeopleSoft Token", - Category: "Enterprise Application Software (EAS)", - }, - { - Number: 11600, - Name: "7-Zip", - Category: "Archives", - }, - { - Number: 12500, - Name: "RAR3-hp", - Category: "Archives", - }, - { - Number: 13000, - Name: "RAR5", - Category: "Archives", - }, - { - Number: 13200, - Name: "AxCrypt", - Category: "Archives", - }, - { - Number: 13300, - Name: "AxCrypt in memory SHA1", - Category: "Archives", - }, - { - Number: 13600, - Name: "WinZip", - Category: "Archives", - }, - { - Number: 14700, - Name: "iTunes Backup < 10.0", - Category: "Backup", - }, - { - Number: 14800, - Name: "iTunes Backup >= 10.0", - Category: "Backup", - }, - { - Number: 8800, - Name: "Android FDE < v4.3", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 12900, - Name: "Android FDE (Samsung DEK)", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 12200, - Name: "eCryptfs", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 14600, - Name: "LUKS", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 16700, - Name: "FileVault 2", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 18300, - Name: "Apple File System (APFS)", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 9700, - Name: "MS Office <= 2003 $0", - Category: "$1, MD5 + RC4 | Documents", - }, - { - Number: 9710, - Name: "MS Office <= 2003 $0", - Category: "$1, MD5 + RC4, collider #1 | Documents", - }, - { - Number: 9720, - Name: "MS Office <= 2003 $0", - Category: "$1, MD5 + RC4, collider #2 | Documents", - }, - { - Number: 9800, - Name: "MS Office <= 2003 $3", - Category: "$4, SHA1 + RC4 | Documents", - }, - { - Number: 9810, - Name: "MS Office <= 2003 $3", - Category: "$4, SHA1 + RC4, collider #1 | Documents", - }, - { - Number: 9820, - Name: "MS Office <= 2003 $3", - Category: "$4, SHA1 + RC4, collider #2 | Documents", - }, - { - Number: 9400, - Name: "MS Office 2007", - Category: "Documents", - }, - { - Number: 9500, - Name: "MS Office 2010", - Category: "Documents", - }, - { - Number: 9600, - Name: "MS Office 2013", - Category: "Documents", - }, - { - Number: 10400, - Name: "PDF 1.1 - 1.3 (Acrobat 2 - 4)", - Category: "Documents", - }, - { - Number: 10410, - Name: "PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1", - Category: "Documents", - }, - { - Number: 10420, - Name: "PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2", - Category: "Documents", - }, - { - Number: 10500, - Name: "PDF 1.4 - 1.6 (Acrobat 5 - 8)", - Category: "Documents", - }, - { - Number: 10600, - Name: "PDF 1.7 Level 3 (Acrobat 9)", - Category: "Documents", - }, - { - Number: 10700, - Name: "PDF 1.7 Level 8 (Acrobat 10 - 11)", - Category: "Documents", - }, - { - Number: 16200, - Name: "Apple Secure Notes", - Category: "Documents", - }, - { - Number: 9000, - Name: "Password Safe v2", - Category: "Password Managers", - }, - { - Number: 5200, - Name: "Password Safe v3", - Category: "Password Managers", - }, - { - Number: 6800, - Name: "Lastpass + Lastpass sniffed", - Category: "Password Managers", - }, - { - Number: 6600, - Name: "1Password, agilekeychain", - Category: "Password Managers", - }, - { - Number: 8200, - Name: "1Password, cloudkeychain", - Category: "Password Managers", - }, - { - Number: 11300, - Name: "Bitcoin/Litecoin wallet.dat", - Category: "Password Managers", - }, - { - Number: 12700, - Name: "Blockchain, My Wallet", - Category: "Password Managers", - }, - { - Number: 15200, - Name: "Blockchain, My Wallet V2", - Category: "Password Managers", - }, - { - Number: 16600, - Name: "Electrum Wallet (Salt-Type 1-3)", - Category: "Password Managers", - }, - { - Number: 13400, - Name: "Keepass 1 (AES/Twofish) and Keepass 2 (AES)", - Category: "Password Managers", - }, - { - Number: 16300, - Name: "Ethereum Pre-Sale Wallet, PBKDF2-HMAC-SHA256", - Category: "Password Managers", - }, - { - Number: 16900, - Name: "Ansible Vault", - Category: "Password Managers", - }, - { - Number: 18100, - Name: "TOTP (HMAC-SHA1)", - Category: "One-Time Passwords", - }, - { - Number: 99999, - Name: "Plaintext", - Category: "Plaintext", - }, - { - Number: 6211, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 512 bit pure AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6211, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 512 bit pure Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6211, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 512 bit pure Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6212, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 1024 bit pure AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6212, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 1024 bit pure Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6212, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 1024 bit pure Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6212, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 1024 bit cascaded AES-Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6212, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 1024 bit cascaded Serpent-AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6212, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 1024 bit cascaded Twofish-Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6213, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 XTS 1536 bit all", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6221, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 512 bit pure AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6221, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 512 bit pure Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6221, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 512 bit pure Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6222, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 1024 bit pure AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6222, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 1024 bit pure Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6222, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 1024 bit pure Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6222, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 1024 bit cascaded AES-Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6222, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 1024 bit cascaded Serpent-AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6222, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 1024 bit cascaded Twofish-Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6223, - Name: "TrueCrypt PBKDF2-HMAC-SHA512 XTS 1536 bit all", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6231, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 512 bit pure AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6231, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 512 bit pure Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6231, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 512 bit pure Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6232, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 1024 bit pure AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6232, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 1024 bit pure Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6232, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 1024 bit pure Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6232, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 1024 bit cascaded AES-Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6232, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 1024 bit cascaded Serpent-AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6232, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 1024 bit cascaded Twofish-Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6233, - Name: "TrueCrypt PBKDF2-HMAC-Whirlpool XTS 1536 bit all", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6241, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 512 bit pure AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6241, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 512 bit pure Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6241, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 512 bit pure Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6242, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 1024 bit pure AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6242, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 1024 bit pure Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6242, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 1024 bit pure Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6242, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 1024 bit cascaded AES-Twofish", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6242, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 1024 bit cascaded Serpent-AES", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6242, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 1024 bit cascaded Twofish-Serpent", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 6243, - Name: "TrueCrypt PBKDF2-HMAC-RipeMD160 + boot-mode XTS 1536 bit all", - Category: "Full-Disk encryptions (FDE)", - }, - { - Number: 15300, - Name: "DPAPI masterkey file v1", - Category: "Operating Systems", - }, - { - Number: 15900, - Name: "DPAPI masterkey file v2", - Category: "Operating Systems", - }, -} - -// LookupHashcatHashType takes a hash type integer and returns info about it if it exists -func LookupHashcatHashType(hashtype int) *HModeInfo { - for _, h := range SupportedHashcatModes { - if h.Number == hashtype { - return &h - } - } - return nil + Number int `json:"mode"` + Name string `json:"name"` + Example string `json:"example,omitempty"` } diff --git a/shared/hashcat_types_test.go b/shared/hashcat_types_test.go deleted file mode 100644 index 54cd6dc..0000000 --- a/shared/hashcat_types_test.go +++ /dev/null @@ -1,20 +0,0 @@ -package shared - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestLookupHashcatHashType(t *testing.T) { - ht := LookupHashcatHashType(0) - if ht == nil { - assert.Fail(t, "ht lookup failed") - return - } - - assert.Equal(t, "MD5", ht.Name) - - ht = LookupHashcatHashType(1333333337) - assert.Nil(t, ht) -} diff --git a/shared/types.go b/shared/types.go index f487a62..b59590f 100644 --- a/shared/types.go +++ b/shared/types.go @@ -5,7 +5,7 @@ import ( "strings" "time" - "github.com/fireeye/gocrack/opencl" + "github.com/mandiant/gocrack/opencl" ) // Device describes an OpenCL device on a worker diff --git a/shared/types_test.go b/shared/types_test.go index 8232b26..1b790e1 100644 --- a/shared/types_test.go +++ b/shared/types_test.go @@ -3,7 +3,7 @@ package shared import ( "testing" - "github.com/fireeye/gocrack/opencl" + "github.com/mandiant/gocrack/opencl" "github.com/stretchr/testify/assert" ) diff --git a/worker/child/child.go b/worker/child/child.go index 25ace0f..2f9206c 100644 --- a/worker/child/child.go +++ b/worker/child/child.go @@ -5,9 +5,9 @@ import ( "os" "time" - "github.com/fireeye/gocrack/server/rpc" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/worker" + "github.com/mandiant/gocrack/server/rpc" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/worker" "github.com/rs/zerolog/log" ) diff --git a/worker/child/task.go b/worker/child/task.go index 0f36c17..843be40 100644 --- a/worker/child/task.go +++ b/worker/child/task.go @@ -10,12 +10,12 @@ import ( "sync" "time" - "github.com/fireeye/gocrack/server/rpc" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" - "github.com/fireeye/gocrack/worker" - "github.com/fireeye/gocrack/worker/engines" - "github.com/fireeye/gocrack/worker/engines/hashcat" + "github.com/mandiant/gocrack/server/rpc" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" + "github.com/mandiant/gocrack/worker" + "github.com/mandiant/gocrack/worker/engines" + "github.com/mandiant/gocrack/worker/engines/hashcat" "github.com/rs/zerolog/log" ) diff --git a/worker/config.go b/worker/config.go index e24e791..7766caf 100644 --- a/worker/config.go +++ b/worker/config.go @@ -4,7 +4,7 @@ import ( "errors" "time" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/shared" ) var ( diff --git a/worker/engines/hashcat/hashcat_engine.go b/worker/engines/hashcat/hashcat_engine.go index c490ee2..bef76a8 100644 --- a/worker/engines/hashcat/hashcat_engine.go +++ b/worker/engines/hashcat/hashcat_engine.go @@ -7,14 +7,14 @@ import ( "runtime" "unsafe" - "github.com/fireeye/gocat" - "github.com/fireeye/gocat/hcargp" - "github.com/fireeye/gocat/restoreutil" - "github.com/fireeye/gocrack/opencl" - "github.com/fireeye/gocrack/server/rpc" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" - "github.com/fireeye/gocrack/worker" + "github.com/mandiant/gocat/v6" + "github.com/mandiant/gocat/v6/hcargp" + "github.com/mandiant/gocat/v6/restoreutil" + "github.com/mandiant/gocrack/opencl" + "github.com/mandiant/gocrack/server/rpc" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" + "github.com/mandiant/gocrack/worker" "github.com/rs/zerolog/log" ) @@ -219,7 +219,7 @@ func (s *HashcatEngine) Start() error { } } - opts.OpenCLDevices = hcargp.GetStringPtr(s.CLDevices.String()) + opts.BackendDevices = hcargp.GetStringPtr(s.CLDevices.String()) opts.OpenCLDeviceTypes = hcargp.GetStringPtr(shared.IntSliceToString(devTypes)) } } diff --git a/worker/engines/hashcat/helpers.go b/worker/engines/hashcat/helpers.go index 8c9a5d4..7c4bd98 100644 --- a/worker/engines/hashcat/helpers.go +++ b/worker/engines/hashcat/helpers.go @@ -4,8 +4,8 @@ import ( "io/ioutil" "os" - "github.com/fireeye/gocat/restoreutil" - "github.com/fireeye/gocrack/server/rpc" + "github.com/mandiant/gocat/v6/restoreutil" + "github.com/mandiant/gocrack/server/rpc" "github.com/rs/zerolog/log" ) diff --git a/worker/engines/hashcat/restore_modifer.go b/worker/engines/hashcat/restore_modifer.go index 6142aee..62a560c 100644 --- a/worker/engines/hashcat/restore_modifer.go +++ b/worker/engines/hashcat/restore_modifer.go @@ -7,10 +7,10 @@ import ( "strconv" "strings" - "github.com/fireeye/gocat/restoreutil" - "github.com/fireeye/gocrack/opencl" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocat/v6/restoreutil" + "github.com/mandiant/gocrack/opencl" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" ) // ErrMalformedCLDevicesArg indicates that the "--opencl-devices" arg is not in the expected format diff --git a/worker/engines/hashcat/restore_modifier_test.go b/worker/engines/hashcat/restore_modifier_test.go index 44b301f..6591b40 100644 --- a/worker/engines/hashcat/restore_modifier_test.go +++ b/worker/engines/hashcat/restore_modifier_test.go @@ -3,10 +3,10 @@ package hashcat import ( "testing" - "github.com/fireeye/gocat/restoreutil" - "github.com/fireeye/gocrack/opencl" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocat/v6/restoreutil" + "github.com/mandiant/gocrack/opencl" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" "github.com/stretchr/testify/assert" ) diff --git a/worker/opencl_info.go b/worker/opencl_info.go index 32134b5..ad8847d 100644 --- a/worker/opencl_info.go +++ b/worker/opencl_info.go @@ -1,8 +1,8 @@ package worker import ( - "github.com/fireeye/gocrack/opencl" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/opencl" + "github.com/mandiant/gocrack/shared" ) // GetAvailableDevices returns all available OpenCL devices with the same ID of hashcat diff --git a/worker/parent/beacon.go b/worker/parent/beacon.go index e21bc50..cc4df2e 100644 --- a/worker/parent/beacon.go +++ b/worker/parent/beacon.go @@ -6,12 +6,12 @@ import ( "strings" "time" - "github.com/fireeye/gocrack/opencl" - "github.com/fireeye/gocrack/server/rpc" - "github.com/fireeye/gocrack/server/storage" - "github.com/fireeye/gocrack/shared" - "github.com/fireeye/gocrack/worker" - "github.com/fireeye/gocrack/worker/engines/hashcat" + "github.com/mandiant/gocrack/opencl" + "github.com/mandiant/gocrack/server/rpc" + "github.com/mandiant/gocrack/server/storage" + "github.com/mandiant/gocrack/shared" + "github.com/mandiant/gocrack/worker" + "github.com/mandiant/gocrack/worker/engines/hashcat" "github.com/rs/zerolog/log" ) diff --git a/worker/parent/mule_manager.go b/worker/parent/mule_manager.go index 8d2ba87..395e677 100644 --- a/worker/parent/mule_manager.go +++ b/worker/parent/mule_manager.go @@ -10,7 +10,7 @@ import ( "syscall" "time" - "github.com/fireeye/gocrack/shared" + "github.com/mandiant/gocrack/shared" "github.com/shirou/gopsutil/process" ) diff --git a/worker/parent/mule_manager_test.go b/worker/parent/mule_manager_test.go index 596c970..9a01985 100644 --- a/worker/parent/mule_manager_test.go +++ b/worker/parent/mule_manager_test.go @@ -9,6 +9,8 @@ import ( "github.com/stretchr/testify/assert" ) +var pythonCommand = "python3" + type remoteProcessManagerTest struct { *RemoteProcessManager @@ -59,7 +61,7 @@ func TestRemoteProcessManager(t *testing.T) { // pid should be unknown at this point because the process hasnt started assert.Equal(t, PIDUNKN, rpmt.GetRunningPID()) - err := rpmt.Start("python", "testdata/printloop.py", "--rc", "25") + err := rpmt.Start(pythonCommand, "testdata/printloop.py", "--rc", "25") assert.Nil(t, err) rpmt.Wait() @@ -87,7 +89,7 @@ func rpmKillTest(t *testing.T, sigKill bool) { rpmt := newRemoteProcessManagerTest() defer rpmt.CleanupTest() - err := rpmt.Start("python", "testdata/printloop.py", "--max", "25") + err := rpmt.Start(pythonCommand, "testdata/printloop.py", "--max", "25") assert.Nil(t, err) time.Sleep(2 * time.Second) diff --git a/worker/parent/worker.go b/worker/parent/worker.go index fac33ef..f256dd5 100644 --- a/worker/parent/worker.go +++ b/worker/parent/worker.go @@ -5,9 +5,9 @@ import ( "os" "sync" - "github.com/fireeye/gocrack/server/rpc" - "github.com/fireeye/gocrack/shared" - "github.com/fireeye/gocrack/worker" + "github.com/mandiant/gocrack/server/rpc" + "github.com/mandiant/gocrack/shared" + "github.com/mandiant/gocrack/worker" "github.com/rs/zerolog/log" ) diff --git a/worker/worker.go b/worker/worker.go index 41003b3..9ca4f8d 100644 --- a/worker/worker.go +++ b/worker/worker.go @@ -1,6 +1,6 @@ package worker -import rpcclient "github.com/fireeye/gocrack/server/rpc/client" +import rpcclient "github.com/mandiant/gocrack/server/rpc/client" var ( // CompileTime is when this was compiled