diff --git a/Makefile b/Makefile index 5f6509f..527e218 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,26 @@ +compression?=true +warped?=true +ldflags="-X github.com/katzenpost/katzenpost/core/epochtime.WarpedEpoch=${warped} -X github.com/ZeroKnowledgeNetwork/opt/common.CompressionEnabled=${compression}" + .PHONY: all app-walletshield genconfig http_proxy pki clean all: app-walletshield http_proxy genconfig pki app-walletshield: - make -C apps/walletshield + cd apps/walletshield && go build -trimpath -ldflags ${ldflags} genconfig: cd genconfig/cmd/genconfig && go build http_proxy: - cd server_plugins/cbor_plugins/http_proxy/cmd/http_proxy && go build + cd server_plugins/cbor_plugins/http_proxy/cmd/http_proxy && go build -trimpath -ldflags ${ldflags} pki: make -C pki clean: make -C pki clean - make -C apps/walletshield clean rm -f \ + apps/walletshield/walletshield \ genconfig/cmd/genconfig/genconfig \ server_plugins/cbor_plugins/http_proxy/cmd/http_proxy/http_proxy diff --git a/apps/walletshield/Makefile b/apps/walletshield/Makefile deleted file mode 100644 index a58b647..0000000 --- a/apps/walletshield/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -warped?=true -ldflags="-X github.com/katzenpost/katzenpost/core/epochtime.WarpedEpoch=${warped}" - -.PHONY: all -all: - go build -trimpath -ldflags ${ldflags} - -.PHONY: clean -clean: - rm -f walletshield diff --git a/apps/walletshield/main.go b/apps/walletshield/main.go index e648798..21cc873 100644 --- a/apps/walletshield/main.go +++ b/apps/walletshield/main.go @@ -38,9 +38,31 @@ var ( UserForwardPayloadLength = 30000 ) -func sendRequest(thin *thin.ThinClient, payload []byte) ([]byte, error) { +func sendRequest(thin *thin.ThinClient, httpRequestBytes []byte) ([]byte, error) { + // Compress the HTTP request + compressedPayload, err := common.CompressData(httpRequestBytes) + if err != nil { + return nil, fmt.Errorf("common.CompressData failed: %w", err) + } + + // Create the request wrapper + request := &http_proxy.Request{ + Payload: compressedPayload, + } + + // Marshal to CBOR + blob, err := cbor.Marshal(request) + if err != nil { + return nil, fmt.Errorf("cbor.Marshal failed: %w", err) + } + + // Validate payload size + if len(blob) > UserForwardPayloadLength { + return nil, fmt.Errorf("payload size %d exceeds maximum %d bytes", len(blob), UserForwardPayloadLength) + } + surbID := &[sConstants.SURBIDLength]byte{} - _, err := rand.Reader.Read(surbID[:]) + _, err = rand.Reader.Read(surbID[:]) if err != nil { panic(err) } @@ -53,7 +75,7 @@ func sendRequest(thin *thin.ThinClient, payload []byte) ([]byte, error) { nodeId := hash.Sum256(target.MixDescriptor.IdentityKey) timeoutCtx, _ := context.WithTimeout(context.TODO(), time.Duration(timeout)*time.Second) - return thin.BlockingSendMessage(timeoutCtx, payload, &nodeId, target.RecipientQueueID) + return thin.BlockingSendMessage(timeoutCtx, blob, &nodeId, target.RecipientQueueID) } type Server struct { @@ -72,6 +94,7 @@ func main() { var testProbeCount int var testProbeResponseDelay int var testProbeSendDelay int + var thinClientOnly bool flag.StringVar(&configPath, "config", "", "file path of the client configuration TOML file") flag.IntVar(&delayStart, "delay_start", 0, "max random seconds to delay start") @@ -83,6 +106,7 @@ func main() { flag.IntVar(&testProbeResponseDelay, "probe_response_delay", 0, "test probe response deplay") flag.IntVar(&testProbeSendDelay, "probe_send_delay", 10, "test probe delay between probes") flag.IntVar(&timeout, "timeout", timeout, "seconds to wait for a request") + flag.BoolVar(&thinClientOnly, "thin", false, "use thin client mode (connect to existing daemon)") flag.Parse() if listenAddr == "" && !testProbe { @@ -109,27 +133,48 @@ func main() { } // start client2 daemon - cfg, err := config.LoadFile(configPath) - if err != nil { - panic(err) - } + var d *client2.Daemon + var cfgThin *thin.Config + if !thinClientOnly { + cfg, err := config.LoadFile(configPath) + if err != nil { + panic(err) + } - if listenAddrClient != "" { - cfg.ListenAddress = listenAddrClient - } + if listenAddrClient != "" { + cfg.ListenAddress = listenAddrClient + } - d, err := client2.NewDaemon(cfg) - if err != nil { - panic(err) - } - err = d.Start() - if err != nil { - panic(err) + d, err := client2.NewDaemon(cfg) + if err != nil { + panic(err) + } + err = d.Start() + if err != nil { + panic(err) + } + + cfgThin = thin.FromConfig(cfg) + + fmt.Println("Sleeping for 3 seconds to let the client daemon startup...") + time.Sleep(time.Second * 3) // XXX ugly hack but works: FIXME + } else { + cfgThin, err = thin.LoadFile(configPath) + + if listenAddrClient != "" { + cfgThin.Address = listenAddrClient + } + if err != nil { + panic(fmt.Errorf("failed to open thin client config: %s", err)) + } } - time.Sleep(time.Second * 3) // XXX ugly hack but works: FIXME + logging := &config.Logging{ + Disable: false, + Level: level.String(), + } - thin := thin.NewThinClient(cfg) + thin := thin.NewThinClient(cfgThin, logging) err = thin.Dial() if err != nil { panic(err) @@ -144,6 +189,7 @@ func main() { if testProbe { server.SendTestProbes(testProbeSendDelay, testProbeCount, testProbeResponseDelay) + d.Shutdown() } else { http.HandleFunc("/", server.Handler) err := http.ListenAndServe(listenAddr, nil) @@ -172,33 +218,17 @@ func (s *Server) Handler(w http.ResponseWriter, req *http.Request) { buf := new(bytes.Buffer) req.Write(buf) - request := new(http_proxy.Request) - request.Payload, err = common.CompressData(buf.Bytes()) - if err != nil { - s.log.Errorf("common.CompressData failed: %s", err) - return - } - s.log.Debugf("RAW HTTP REQUEST:\n%s", string(buf.Bytes())) - blob, err := cbor.Marshal(request) - if err != nil { - panic(err) - } - - // FIXME: resolve with multi-packet transimssion to transcend payload size limitation - // While better solution is developing, pre-emptively reject oversized payloads - size := len(blob) - if size > UserForwardPayloadLength { - s.log.Errorf("(WIP) Rejecting message with oversized payload: %d > %d bytes", size, UserForwardPayloadLength) - http.Error(w, "custom 500", http.StatusInternalServerError) - return - } - - rawReply, err := sendRequest(s.thin, blob) + rawReply, err := sendRequest(s.thin, buf.Bytes()) if err != nil { s.log.Errorf("Failed to send message: %s", err) - http.Error(w, "custom 404", http.StatusNotFound) + // Check if it's a payload size error + if strings.Contains(err.Error(), "exceeds maximum") { + http.Error(w, "custom 500", http.StatusInternalServerError) + } else { + http.Error(w, "custom 404", http.StatusNotFound) + } return } @@ -237,18 +267,13 @@ func (s *Server) Handler(w http.ResponseWriter, req *http.Request) { func (s *Server) SendTestProbes(testProbeSendDelay int, testProbeCount int, testProbeResponseDelay int) { url := fmt.Sprintf("http://nowhere/_/probe/%d", testProbeResponseDelay) req, err := http.NewRequest("GET", url, nil) - buf := new(bytes.Buffer) - req.Write(buf) - request := new(http_proxy.Request) - request.Payload, err = common.CompressData(buf.Bytes()) if err != nil { - s.log.Errorf("common.CompressData failed: %s", err) + s.log.Errorf("http.NewRequest failed: %s", err) return } - blob, err := cbor.Marshal(request) - if err != nil { - panic(err) - } + buf := new(bytes.Buffer) + req.Write(buf) + httpRequestBytes := buf.Bytes() var packetsTransmitted, packetsReceived int var rttMin, rttMax, rttTotal float64 @@ -258,7 +283,7 @@ func (s *Server) SendTestProbes(testProbeSendDelay int, testProbeCount int, test packetsTransmitted++ t := time.Now() - _, err = sendRequest(s.thin, blob) + _, err = sendRequest(s.thin, httpRequestBytes) elapsed := time.Since(t).Seconds() if err != nil { s.log.Errorf("Probe failed after %.2fs: %s", elapsed, err) diff --git a/common/compression.go b/common/compression.go index d038c9d..61c6d90 100644 --- a/common/compression.go +++ b/common/compression.go @@ -6,9 +6,16 @@ import ( "io" ) +// CompressionEnabled is a flag that can be passed at build time to disable compression +var CompressionEnabled string = "true" + func CompressData(data []byte) ([]byte, error) { + if CompressionEnabled != "true" { + return data, nil + } + var buf bytes.Buffer - writer, err := flate.NewWriter(&buf, flate.BestCompression) + writer, err := flate.NewWriter(&buf, flate.BestSpeed) if err != nil { return nil, err } @@ -24,6 +31,10 @@ func CompressData(data []byte) ([]byte, error) { } func DecompressData(data []byte) ([]byte, error) { + if CompressionEnabled != "true" { + return data, nil + } + reader := flate.NewReader(bytes.NewReader(data)) defer reader.Close() decompressedData, err := io.ReadAll(reader) diff --git a/docker/Makefile b/docker/Makefile index 779658d..6055e4a 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -1,4 +1,6 @@ warped?=true +compression?=true + mixes=3 auths=3 gateways=1 @@ -13,7 +15,7 @@ sh=$(shell if echo ${distro}|grep -q alpine; then echo sh; else echo bash; fi) cache_dir=cache log_level=DEBUG docker=$(shell if which podman|grep -q .; then echo podman; else echo docker; fi) -ldflags="-extldflags '-Wl,-z,stack-size=0x1F40000' -buildid= -X github.com/katzenpost/katzenpost/core/epochtime.WarpedEpoch=${warped}" +ldflags="-extldflags '-Wl,-z,stack-size=0x1F40000' -buildid= -X github.com/katzenpost/katzenpost/core/epochtime.WarpedEpoch=${warped} -X github.com/ZeroKnowledgeNetwork/opt/common.CompressionEnabled=${compression}" uid?=$(shell [ "$$SUDO_UID" != "" ] && echo "$$SUDO_UID" || id -u) gid?=$(shell [ "$$SUDO_GID" != "" ] && echo "$$SUDO_GID" || id -g) docker_user?=$(shell if echo ${docker}|grep -q podman; then echo 0:0; else echo ${uid}:${gid}; fi) @@ -79,12 +81,17 @@ $(net_dir)/walletshield.$(distro): $(katzenpost_dir)/docker/$(distro)_base.stamp .PHONY: walletshield-probe walletshield-probe: $(net_dir)/walletshield.$(distro) $(net_dir)/running.stamp | $(cache_dir) $(docker) run --network=host $(docker_args) $(mount_net_name) --rm katzenpost-$(distro)_base \ - /$(net_name)/walletshield.$(distro) -config /$(net_name)/client2/client.toml -log_level DEBUG -probe --probe_count 3 + /$(net_name)/walletshield.$(distro) -config /$(net_name)/client2/thinclient.toml -thin -log_level DEBUG -probe --probe_count 3 + +.PHONY: walletshield-probe-full +walletshield-probe-full: $(net_dir)/walletshield.$(distro) $(net_dir)/running.stamp | $(cache_dir) + $(docker) run --network=host $(docker_args) $(mount_net_name) --rm katzenpost-$(distro)_base \ + /$(net_name)/walletshield.$(distro) -config /$(net_name)/client2/client.toml --listen_client :64333 -log_level DEBUG -probe --probe_count 3 .PHONY: walletshield-start walletshield-start: $(net_dir)/walletshield.$(distro) $(net_dir)/running.stamp | $(cache_dir) $(docker) run -d --network=host $(docker_args) $(mount_net_name) --name walletshield katzenpost-$(distro)_base \ - /$(net_name)/walletshield.$(distro) -config /$(net_name)/client2/client.toml -listen :7070 -log_level DEBUG + /$(net_name)/walletshield.$(distro) -config /$(net_name)/client2/thinclient.toml -thin -listen :7070 -log_level DEBUG .PHONY: walletshield-logs walletshield-logs: diff --git a/docker/node/Dockerfile b/docker/node/Dockerfile index 93d5ef1..6d9f750 100644 --- a/docker/node/Dockerfile +++ b/docker/node/Dockerfile @@ -6,19 +6,22 @@ RUN \ --mount=type=cache,target=/var/lib/apt \ apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ + libsnappy1v5 \ && rm -rf /var/lib/apt/lists/* FROM base AS builder +ARG ENABLE_COMPRESSION=false ARG ENABLE_WARPED_EPOCH=false ARG KATZENPOST_DIR=/src/katzenpost -ARG VERSION_GO=1.22.3 +ARG VERSION_GO=1.24.4 +ARG VERSION_ROCKSDB=10.2.1 ENV GOROOT=/usr/local/go ENV PATH=$GOROOT/bin:$PATH ENV GOCACHE=/root/.cache/go-build -ENV GO_BUILD_OPTS="-trimpath -ldflags=-buildid= -ldflags=-X=github.com/katzenpost/katzenpost/core/epochtime.WarpedEpoch=${ENABLE_WARPED_EPOCH}" +ENV GO_BUILD_OPTS="-trimpath -ldflags=-buildid= -ldflags=-X=github.com/katzenpost/katzenpost/core/epochtime.WarpedEpoch=${ENABLE_WARPED_EPOCH} -ldflags=-X=github.com/ZeroKnowledgeNetwork/opt/common.CompressionEnabled=${ENABLE_COMPRESSION}" # Install build dependencies RUN \ @@ -27,7 +30,26 @@ RUN \ apt-get update && apt-get install -y --no-install-recommends \ build-essential \ git \ - wget + wget \ + # rocksdb dependencies: + cmake \ + liblz4-dev \ + libsnappy-dev \ + libzstd-dev \ + rsync \ + zlib1g-dev + +# Build RocksDB +RUN \ + cd /tmp && \ + git clone --branch "v${VERSION_ROCKSDB}" --depth 1 https://github.com/facebook/rocksdb.git && \ + cd rocksdb && \ + make -j"$(nproc)" shared_lib && \ + strip librocksdb.so.* && \ + cp -a librocksdb.so* /usr/local/lib/ && \ + cp -a include/* /usr/local/include/ && \ + cd /tmp && rm -rf /tmp/rocksdb && \ + ldconfig # Install Go RUN f=go${VERSION_GO}.linux-amd64.tar.gz \ @@ -46,17 +68,16 @@ RUN --mount=type=cache,target="${GOCACHE}" \ # a function to build and move the binary && build() { cd ${KATZENPOST_DIR}/$1 ; b=$(basename $1) ; go build ${GO_BUILD_OPTS} ; chmod u+x $b ; mv $b /dest/$2; } \ # clients - && build authority/cmd/fetch fetch \ - && build ping ping \ - # server - && build server/cmd/server server \ - ## servicenode plugins - && build http/proxy/client proxy_client \ - && build http/proxy/server proxy_server \ - && build memspool/server/cmd/memspool memspool \ - && build pigeonhole/server/cmd/pigeonhole pigeonhole \ - && build panda/server/cmd/panda_server panda_server \ - && build server_plugins/cbor_plugins/echo-go echo_server + && build cmd/fetch fetch \ + && build cmd/kpclientd kpclientd \ + && build cmd/ping ping \ + # servers + && build cmd/dirauth dirauth \ + && build cmd/server server \ + ## services + && build cmd/courier courier \ + && build cmd/echo-plugin echo-plugin \ + && build cmd/replica replica # Build ZKN mix network components RUN --mount=type=cache,target="${GOCACHE}" \ @@ -77,5 +98,9 @@ FROM base AS node ARG DIR_BIN=/opt/zkn COPY --from=builder /dest ${DIR_BIN} +COPY --from=builder /usr/local/include/ /usr/local/include/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ + +RUN ldconfig CMD ["/bin/bash"] diff --git a/go.mod b/go.mod index 3aeda5d..454d9bc 100644 --- a/go.mod +++ b/go.mod @@ -1,19 +1,19 @@ module github.com/ZeroKnowledgeNetwork/opt -go 1.23.0 +go 1.24.0 require ( - github.com/BurntSushi/toml v1.4.0 + github.com/BurntSushi/toml v1.5.0 github.com/ZeroKnowledgeNetwork/appchain-agent/clients/go v0.0.0-20250320061231-774b32400141 github.com/carlmjohnson/versioninfo v0.22.5 github.com/charmbracelet/log v0.4.0 - github.com/fxamacker/cbor/v2 v2.7.0 - github.com/katzenpost/hpqc v0.0.55 - github.com/katzenpost/katzenpost v0.0.48 - github.com/quic-go/quic-go v0.50.0 - github.com/stretchr/testify v1.9.0 - go.etcd.io/bbolt v1.3.10 - golang.org/x/crypto v0.36.0 + github.com/fxamacker/cbor/v2 v2.8.0 + github.com/katzenpost/hpqc v0.0.68 + github.com/katzenpost/katzenpost v0.0.63 + github.com/quic-go/quic-go v0.53.0 + github.com/stretchr/testify v1.10.0 + go.etcd.io/bbolt v1.4.2 + golang.org/x/crypto v0.39.0 gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 gopkg.in/yaml.v3 v3.0.1 ) @@ -22,15 +22,23 @@ require ( codeberg.org/vula/highctidh v1.0.2024092800 // indirect filippo.io/edwards25519 v1.0.0 // indirect filippo.io/mlkem768 v0.0.0-20240221181710-5ce91625fdc1 // indirect + github.com/agl/gcmsiv v0.0.0-20190418185415-e8dcd2f151dc // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/charmbracelet/colorprofile v0.3.1 // indirect + github.com/charmbracelet/fang v0.3.0 // indirect github.com/charmbracelet/lipgloss v0.10.0 // indirect + github.com/charmbracelet/lipgloss/v2 v2.0.0-beta1 // indirect + github.com/charmbracelet/x/ansi v0.8.0 // indirect + github.com/charmbracelet/x/cellbuf v0.0.13 // indirect + github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444 // indirect + github.com/charmbracelet/x/term v0.2.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-faster/xor v1.0.0 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-task/slim-sprig/v3 v3.0.0 // indirect - github.com/google/pprof v0.0.0-20240903155634-a8630aee4ab9 // indirect github.com/henrydcase/nobs v0.0.0-20230313231516-25b66236df73 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/katzenpost/chacha20 v0.0.1 // indirect + github.com/katzenpost/chacha20poly1305 v0.0.1 // indirect github.com/katzenpost/circl v1.3.9-0.20240222183521-1cd9a34e9a0c // indirect github.com/katzenpost/nyquist v0.0.10 // indirect github.com/katzenpost/sntrup4591761 v0.0.0-20231024131303-8755eb1986b8 // indirect @@ -39,26 +47,33 @@ require ( github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-isatty v0.0.18 // indirect github.com/mattn/go-pointer v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect + github.com/muesli/mango v0.1.0 // indirect + github.com/muesli/mango-cobra v1.2.0 // indirect + github.com/muesli/mango-pflag v0.1.0 // indirect github.com/muesli/reflow v0.3.0 // indirect + github.com/muesli/roff v0.1.0 // indirect github.com/muesli/termenv v0.15.2 // indirect github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7 // indirect - github.com/onsi/ginkgo/v2 v2.20.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/quic-go/qpack v0.5.1 // indirect github.com/rfjakob/eme v1.1.2 // indirect github.com/rivo/uniseg v0.4.7 // indirect + github.com/spf13/cobra v1.9.1 // indirect + github.com/spf13/pflag v1.0.6 // indirect github.com/x448/float16 v0.8.4 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect gitlab.com/yawning/aez.git v0.0.0-20211027044916-e49e68abd344 // indirect gitlab.com/yawning/bsaes.git v0.0.0-20190805113838-0a714cd429ec // indirect gitlab.com/yawning/x448.git v0.0.0-20221003101044-617eb9b7d9b7 // indirect go.uber.org/mock v0.5.0 // indirect golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.37.0 // indirect - golang.org/x/sync v0.12.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/text v0.23.0 // indirect - golang.org/x/tools v0.25.0 // indirect + golang.org/x/mod v0.25.0 // indirect + golang.org/x/net v0.41.0 // indirect + golang.org/x/sync v0.16.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.27.0 // indirect + golang.org/x/tools v0.34.0 // indirect ) diff --git a/go.sum b/go.sum index 9982315..5f353d8 100644 --- a/go.sum +++ b/go.sum @@ -4,47 +4,66 @@ filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/mlkem768 v0.0.0-20240221181710-5ce91625fdc1 h1:xbdqh5aDZeO0XqW896qVjKnAqRji9nkIwmsBEEbCA10= filippo.io/mlkem768 v0.0.0-20240221181710-5ce91625fdc1/go.mod h1:mIEHrcJ2xBlJRQwnRO0ujmZ+Rt6m6eNeCPq8E3Wkths= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/ZeroKnowledgeNetwork/appchain-agent/clients/go v0.0.0-20250320061231-774b32400141 h1:Bzu2TizLmnFrUSlmQg+yJigXpFz3DRYhxjUih2LuAcg= github.com/ZeroKnowledgeNetwork/appchain-agent/clients/go v0.0.0-20250320061231-774b32400141/go.mod h1:Vs5ELDdDNNQDSEhEKs4UNlujZkTQaW8jCtfjlOCHDno= +github.com/agl/gcmsiv v0.0.0-20190418185415-e8dcd2f151dc h1:MB338WDPuyQ8qXRiSRK2NVTv0EmLYsHXZAevEiQO1+c= +github.com/agl/gcmsiv v0.0.0-20190418185415-e8dcd2f151dc/go.mod h1:5joDAvk82M2Cx1X8mAL5Orvhy5lfW4BjrTCW65wbvRo= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8= +github.com/aymanbagabas/go-udiff v0.2.0/go.mod h1:RE4Ex0qsGkTAJoQdQQCA0uG+nAzJO/pI/QwceO5fgrA= github.com/carlmjohnson/versioninfo v0.22.5 h1:O00sjOLUAFxYQjlN/bzYTuZiS0y6fWDQjMRvwtKgwwc= github.com/carlmjohnson/versioninfo v0.22.5/go.mod h1:QT9mph3wcVfISUKd0i9sZfVrPviHuSF+cUtLjm2WSf8= +github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40= +github.com/charmbracelet/colorprofile v0.3.1/go.mod h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0= +github.com/charmbracelet/fang v0.3.0 h1:Be6TB+ExS8VWizTQRJgjqbJBudKrmVUet65xmFPGhaA= +github.com/charmbracelet/fang v0.3.0/go.mod h1:b0ZfEXZeBds0I27/wnTfnv2UVigFDXHhrFNwQztfA0M= github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s= github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE= +github.com/charmbracelet/lipgloss/v2 v2.0.0-beta1 h1:SOylT6+BQzPHEjn15TIzawBPVD0QmhKXbcb3jY0ZIKU= +github.com/charmbracelet/lipgloss/v2 v2.0.0-beta1/go.mod h1:tRlx/Hu0lo/j9viunCN2H+Ze6JrmdjQlXUQvvArgaOc= github.com/charmbracelet/log v0.4.0 h1:G9bQAcx8rWA2T3pWvx7YtPTPwgqpk7D68BX21IRW8ZM= github.com/charmbracelet/log v0.4.0/go.mod h1:63bXt/djrizTec0l11H20t8FDSvA4CRZJ1KH22MdptM= +github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE= +github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q= +github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= +github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= +github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444 h1:IJDiTgVE56gkAGfq0lBEloWgkXMk4hl/bmuPoicI4R0= +github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444/go.mod h1:T9jr8CzFpjhFVHjNjKwbAD7KwBNyFnj2pntAO7F2zw0= +github.com/charmbracelet/x/exp/golden v0.0.0-20240806155701-69247e0abc2a h1:G99klV19u0QnhiizODirwVksQB91TJKV/UaTnACcG30= +github.com/charmbracelet/x/exp/golden v0.0.0-20240806155701-69247e0abc2a/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U= +github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= +github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= 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/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= -github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/fxamacker/cbor/v2 v2.8.0 h1:fFtUGXUzXPHTIUdne5+zzMPTfffl3RD5qYnkY40vtxU= +github.com/fxamacker/cbor/v2 v2.8.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-faster/xor v1.0.0 h1:2o8vTOgErSGHP3/7XwA5ib1FTtUsNtwCoLLBjl31X38= github.com/go-faster/xor v1.0.0/go.mod h1:x5CaDY9UKErKzqfRfFZdfu+OSTfoZny3w5Ak7UxcipQ= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= -github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/pprof v0.0.0-20240903155634-a8630aee4ab9 h1:q5g0N9eal4bmJwXHC5z0QCKs8qhS35hFfq0BAYsIwZI= -github.com/google/pprof v0.0.0-20240903155634-a8630aee4ab9/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/henrydcase/nobs v0.0.0-20230313231516-25b66236df73 h1:d3rq/Tz+RJ5h1xk6Lt3jbObJN3WhvZm7rV41OCIzUyI= github.com/henrydcase/nobs v0.0.0-20230313231516-25b66236df73/go.mod h1:ptK2MJqVLVEa/V/oK8n+MEyUDCSjSylW+jeNmCG1DJo= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/katzenpost/chacha20 v0.0.1 h1:Scu6Pqyginw083FhypKMIBmCI2gQTC1RFD6vqpWwI2Y= github.com/katzenpost/chacha20 v0.0.1/go.mod h1:/LIJK/8cUXVJrCh5NypZ8So3gDfQCoQT8lRvy1rYQZA= +github.com/katzenpost/chacha20poly1305 v0.0.1 h1:yFPxgu/VSWsoCNQ2x15az8xBKKc/9GDY9Pz42MvY9xg= +github.com/katzenpost/chacha20poly1305 v0.0.1/go.mod h1:5sv//C8pWaXrnnP3CNiJXqAlA1/yfUZOl1tR9xsL9bI= github.com/katzenpost/circl v1.3.9-0.20240222183521-1cd9a34e9a0c h1:FYy03rLIjdyjklBOI6YSCb3q7OubTx0dVDWYOgDsvA8= github.com/katzenpost/circl v1.3.9-0.20240222183521-1cd9a34e9a0c/go.mod h1:+EBrwiGYs9S+qZqaqxujN1CReTNCMAG6p+31KkEDeeA= -github.com/katzenpost/hpqc v0.0.55 h1:dRdk3k+sJsvRb5Z2CLVUmxOhY/WhgQ6JkAGWYFUNdLg= -github.com/katzenpost/hpqc v0.0.55/go.mod h1:yaVqoZyKeBmgiKnGBpgLNf+nfO4ll81f54RAnaL6OpI= -github.com/katzenpost/katzenpost v0.0.48 h1:nyvWYvVu5r+0UgPRCGnPyC/Jn7Dst9UluWsJ4XB7OCs= -github.com/katzenpost/katzenpost v0.0.48/go.mod h1:FcNs9Kc6PiJQ7t8g6iNYGAtlempt627iLQvUlrV3HHc= +github.com/katzenpost/hpqc v0.0.68 h1:Soo5YlW6bsiBmMsM01wI2drPUeoa0j99kWHZ/8Uo2PI= +github.com/katzenpost/hpqc v0.0.68/go.mod h1:yaVqoZyKeBmgiKnGBpgLNf+nfO4ll81f54RAnaL6OpI= +github.com/katzenpost/katzenpost v0.0.63 h1:odAiDXaFbWNUPGbcruhvI5mC4/iK1BMQ+rGQvlboTzI= +github.com/katzenpost/katzenpost v0.0.63/go.mod h1:Ljht9S/XFgZ/3HQcCiITQ/ws8H520Pr7jLJ4gLJH/Ws= github.com/katzenpost/nyquist v0.0.10 h1:rh9TCEXCsutsg+cvbV6ASVFnzSAYBisWQ3fnwQSPa34= github.com/katzenpost/nyquist v0.0.10/go.mod h1:tyK92JiCptgsaE0iUAMlt5W2v2Rdw6mnUpIdIidIGHo= github.com/katzenpost/sntrup4591761 v0.0.0-20231024131303-8755eb1986b8 h1:TsKxH0x2RUwf5rBw67k15bqVM3oVbexA9oaTZQLIy3Y= @@ -61,82 +80,91 @@ github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= -github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= +github.com/muesli/mango v0.1.0 h1:DZQK45d2gGbql1arsYA4vfg4d7I9Hfx5rX/GCmzsAvI= +github.com/muesli/mango v0.1.0/go.mod h1:5XFpbC8jY5UUv89YQciiXNlbi+iJgt29VDC5xbzrLL4= +github.com/muesli/mango-cobra v1.2.0 h1:DQvjzAM0PMZr85Iv9LIMaYISpTOliMEg+uMFtNbYvWg= +github.com/muesli/mango-cobra v1.2.0/go.mod h1:vMJL54QytZAJhCT13LPVDfkvCUJ5/4jNUKF/8NC2UjA= +github.com/muesli/mango-pflag v0.1.0 h1:UADqbYgpUyRoBja3g6LUL+3LErjpsOwaC9ywvBWe7Sg= +github.com/muesli/mango-pflag v0.1.0/go.mod h1:YEQomTxaCUp8PrbhFh10UfbhbQrM/xJ4i2PB8VTLLW0= github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= +github.com/muesli/roff v0.1.0 h1:YD0lalCotmYuF5HhZliKWlIx7IEhiXeSfq7hNjFqGF8= +github.com/muesli/roff v0.1.0/go.mod h1:pjAHQM9hdUUwm/krAfrLGgJkXJ+YuhtsfZ42kieB2Ig= github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a h1:dlRvE5fWabOchtH7znfiFCcOvmIYgOeAS5ifBXBlh9Q= github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7 h1:1102pQc2SEPp5+xrS26wEaeb26sZy6k9/ZXlZN+eXE4= github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7/go.mod h1:UqoUn6cHESlliMhOnKLWr+CBH+e3bazUPvFj1XZwAjs= -github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= -github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= -github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= -github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= 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/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI= github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg= -github.com/quic-go/quic-go v0.50.0 h1:3H/ld1pa3CYhkcc20TPIyG1bNsdhn9qZBGN3b9/UyUo= -github.com/quic-go/quic-go v0.50.0/go.mod h1:Vim6OmUvlYdwBhXP9ZVrtGmCMWa3wEqhq3NgYrI8b4E= +github.com/quic-go/quic-go v0.53.0 h1:QHX46sISpG2S03dPeZBgVIZp8dGagIaiu2FiVYvpCZI= +github.com/quic-go/quic-go v0.53.0/go.mod h1:e68ZEaCdyviluZmy44P6Iey98v/Wfz6HCjQEm+l8zTY= github.com/rfjakob/eme v1.1.2 h1:SxziR8msSOElPayZNFfQw4Tjx/Sbaeeh3eRvrHVMUs4= github.com/rfjakob/eme v1.1.2/go.mod h1:cVvpasglm/G3ngEfcfT/Wt0GwhkuO32pf/poW6Nyk1k= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/schwarmco/go-cartesian-product v0.0.0-20230921023625-e02d1c150053 h1:h7EwPM2KjupG0zVAG+EYxbR2cHnbiP1d4DTAZ+G09LY= github.com/schwarmco/go-cartesian-product v0.0.0-20230921023625-e02d1c150053/go.mod h1:/TRiIlxvQQAtfnBXEqqbnYBYPmE6XT5iZxSx+hJ9zGw= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= gitlab.com/yawning/aez.git v0.0.0-20211027044916-e49e68abd344 h1:eICJMpqnDkO4nQv+GWtXcE45CFum/ni3jhcE+acBjQk= gitlab.com/yawning/aez.git v0.0.0-20211027044916-e49e68abd344/go.mod h1:/WDFxZLKGy+NQc+nqvQg2O0rW1HeWNHSelVv5fwEL8s= gitlab.com/yawning/bsaes.git v0.0.0-20190805113838-0a714cd429ec h1:FpfFs4EhNehiVfzQttTuxanPIT43FtkkCFypIod8LHo= gitlab.com/yawning/bsaes.git v0.0.0-20190805113838-0a714cd429ec/go.mod h1:BZ1RAoRPbCxum9Grlv5aeksu2H8BiKehBYooU2LFiOQ= gitlab.com/yawning/x448.git v0.0.0-20221003101044-617eb9b7d9b7 h1:ITrNVw6uSwSdEap0RR4us4RV1CHPBHvBZApENRcDk3c= gitlab.com/yawning/x448.git v0.0.0-20221003101044-617eb9b7d9b7/go.mod h1:BC2R0OW0tAYTMNLB4UMXwkk7WKokoDZP5n73hyLPyCo= -go.etcd.io/bbolt v1.3.10 h1:+BqfJTcCzTItrop8mq/lbzL8wSGtj94UO/3U31shqG0= -go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ= +go.etcd.io/bbolt v1.4.2 h1:IrUHp260R8c+zYx/Tm8QZr04CX+qWS5PGfPdevhdm1I= +go.etcd.io/bbolt v1.4.2/go.mod h1:Is8rSHO/b4f3XigBC0lL0+4FwAQv3HXEEIgFMuKHceM= go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= golang.org/x/crypto v0.0.0-20210513122933-cd7d49e622d5/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e h1:I88y4caeGeuDQxgdoFPUq097j7kNfw6uvuiNxUBfcBk= golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= -golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 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.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4= +golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE= -golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo= +golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 h1:6D+BvnJ/j6e222UW8s2qTSe3wGBtvo0MbVQG/c5k8RE= diff --git a/pki/server/server.go b/pki/server/server.go index 81903bf..0567343 100644 --- a/pki/server/server.go +++ b/pki/server/server.go @@ -30,7 +30,7 @@ import ( "github.com/katzenpost/katzenpost/core/log" "github.com/katzenpost/katzenpost/core/sphinx/geo" "github.com/katzenpost/katzenpost/core/utils" - "github.com/katzenpost/katzenpost/http/common" + "github.com/katzenpost/katzenpost/quic/common" ) // ErrGenerateOnly is the error returned when the server initialization diff --git a/pki/server/state.go b/pki/server/state.go index a9fa807..aee8d8e 100644 --- a/pki/server/state.go +++ b/pki/server/state.go @@ -45,7 +45,7 @@ import ( "github.com/katzenpost/katzenpost/core/wire" "github.com/katzenpost/katzenpost/core/wire/commands" "github.com/katzenpost/katzenpost/core/worker" - "github.com/katzenpost/katzenpost/http/common" + "github.com/katzenpost/katzenpost/quic/common" ) const (