diff --git a/.github/workflows/check-go-validation.yml b/.github/workflows/check-go-validation.yml index 32da77c9..f10d2e2b 100644 --- a/.github/workflows/check-go-validation.yml +++ b/.github/workflows/check-go-validation.yml @@ -15,7 +15,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.24 + go-version: 1.24.0 - name: Build run: go build -v . && go build -v ./... - name: Test diff --git a/Dockerfile b/Dockerfile index a20ec174..9226e07d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.18 +FROM golang:1.24.0 RUN mkdir /trezord-go WORKDIR /trezord-go diff --git a/Makefile b/Makefile index 82782282..10e3a177 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ native: - CGO_ENABLED=1 go build $(GOFLAGS) + CGO_ENABLED=1 go build -buildvcs=false $(GOFLAGS) build-release: make -C release clean all diff --git a/go.mod b/go.mod index 7a387802..c076f704 100644 --- a/go.mod +++ b/go.mod @@ -1,12 +1,18 @@ module github.com/trezor/trezord-go -go 1.12 +go 1.24.0 require ( - github.com/BurntSushi/toml v0.3.1 // indirect github.com/gorilla/csrf v1.7.0 github.com/gorilla/handlers v1.5.1 github.com/gorilla/mux v1.8.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 +) + +require ( + github.com/BurntSushi/toml v0.3.1 // indirect + github.com/felixge/httpsnoop v1.0.1 // indirect + github.com/gorilla/securecookie v1.1.1 // indirect + github.com/pkg/errors v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index 6aa104f9..5017d8ac 100644 --- a/go.sum +++ b/go.sum @@ -12,7 +12,6 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -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/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= diff --git a/release/linux/Dockerfile.build b/release/linux/Dockerfile.build index 8ce35989..3a23125d 100644 --- a/release/linux/Dockerfile.build +++ b/release/linux/Dockerfile.build @@ -1,11 +1,11 @@ FROM messense/rust-musl-cross:aarch64-musl AS go-arm64-musl -COPY --from=golang:1.19.1 /usr/local/go/ /usr/local/go/ +COPY --from=golang:1.24.0 /usr/local/go/ /usr/local/go/ ENV TREZORD_BUILD=go-arm64-musl FROM messense/rust-musl-cross:i686-musl AS go-386-musl -COPY --from=golang:1.19.1 /usr/local/go/ /usr/local/go/ +COPY --from=golang:1.24.0 /usr/local/go/ /usr/local/go/ ENV TREZORD_BUILD=go-386-musl FROM messense/rust-musl-cross:x86_64-musl AS go-amd64-musl -COPY --from=golang:1.19.1 /usr/local/go/ /usr/local/go/ +COPY --from=golang:1.24.0 /usr/local/go/ /usr/local/go/ ENV TREZORD_BUILD=go-amd64-musl diff --git a/release/macos/Makefile b/release/macos/Makefile index 8a12773b..1050735c 100644 --- a/release/macos/Makefile +++ b/release/macos/Makefile @@ -20,22 +20,25 @@ clean: -v $(IMPORT_PATH):/trezord \ -w /trezord \ -e CGO_ENABLED=1 \ - docker.elastic.co/beats-dev/golang-crossbuild:1.19-darwin-debian10 \ + -e GOFLAGS="-buildvcs=false" \ + docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-darwin-debian12 \ --build-cmd "go build -o release/macos/build/trezord-amd64 -ldflags=-s" \ -p "darwin/amd64" docker run --rm \ -v $(IMPORT_PATH):/trezord \ -w /trezord \ -e CGO_ENABLED=1 \ - docker.elastic.co/beats-dev/golang-crossbuild:1.19-darwin-arm64-debian10 \ + -e GOFLAGS="-buildvcs=false" \ + docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-darwin-arm64-debian12 \ --build-cmd "go build -o release/macos/build/trezord-arm64 -ldflags=-s" \ -p "darwin/arm64" docker run --rm \ -v $(IMPORT_PATH):/trezord \ -w /trezord \ -e CGO_ENABLED=1 \ + -e GOFLAGS="-buildvcs=false" \ --entrypoint /trezord/release/macos/build-fat.sh \ - docker.elastic.co/beats-dev/golang-crossbuild:1.19-darwin-arm64-debian10 + docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-darwin-arm64-debian12 cp ../../VERSION build .package: .binary .docker-image diff --git a/release/windows/Makefile b/release/windows/Makefile index 008c03b4..bffe6f51 100644 --- a/release/windows/Makefile +++ b/release/windows/Makefile @@ -19,7 +19,8 @@ clean: -w /trezord \ -e CGO_ENABLED=1 \ -e CGO_CFLAGS="-D_WIN32_WINNT=0x0600" \ - docker.elastic.co/beats-dev/golang-crossbuild:1.19-main-debian10 \ + -e GOFLAGS="-buildvcs=false" \ + docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-main-debian12 \ --build-cmd "go build -o release/windows/build/trezord-64b.exe -ldflags=\"-H=windowsgui\"" \ -p "windows/amd64" docker run --rm \ @@ -27,7 +28,8 @@ clean: -w /trezord \ -e CGO_ENABLED=1 \ -e CGO_CFLAGS="-D_WIN32_WINNT=0x0600" \ - docker.elastic.co/beats-dev/golang-crossbuild:1.19-main-debian10 \ + -e GOFLAGS="-buildvcs=false" \ + docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-main-debian12 \ --build-cmd "go build -o release/windows/build/trezord-32b.exe -ldflags=\"-H=windowsgui\"" \ -p "windows/386" cp ../../VERSION build diff --git a/server/api/api.go b/server/api/api.go index 73bd9a3a..76882691 100644 --- a/server/api/api.go +++ b/server/api/api.go @@ -3,7 +3,7 @@ package api import ( "encoding/hex" "encoding/json" - "io/ioutil" + "io" "net/http" "regexp" @@ -200,7 +200,7 @@ func (a *api) call(w http.ResponseWriter, r *http.Request, mode core.CallMode, d var binbody []byte if mode != core.CallModeRead { - hexbody, err := ioutil.ReadAll(r.Body) + hexbody, err := io.ReadAll(r.Body) if err != nil { a.respondError(w, err) return diff --git a/usb/lowlevel/libusb/libusb.go b/usb/lowlevel/libusb/libusb.go index 339eb37d..5f2564ad 100644 --- a/usb/lowlevel/libusb/libusb.go +++ b/usb/lowlevel/libusb/libusb.go @@ -104,7 +104,6 @@ import "C" import ( "fmt" - "reflect" "strings" "unsafe" ) @@ -459,11 +458,7 @@ type Interface_Descriptor struct { } func (x *Struct_Libusb_Interface_Descriptor) c2go() *Interface_Descriptor { - var list []Struct_Libusb_Endpoint_Descriptor - hdr := (*reflect.SliceHeader)(unsafe.Pointer(&list)) - hdr.Cap = int(x.bNumEndpoints) - hdr.Len = int(x.bNumEndpoints) - hdr.Data = uintptr(unsafe.Pointer(x.endpoint)) + list := unsafe.Slice((*Struct_Libusb_Endpoint_Descriptor)(unsafe.Pointer(x.endpoint)), int(x.bNumEndpoints)) endpoints := make([]*Endpoint_Descriptor, x.bNumEndpoints) for i := range endpoints { endpoints[i] = (&list[i]).c2go() @@ -517,11 +512,7 @@ type Interface struct { } func (x *Struct_Libusb_Interface) c2go() *Interface { - var list []Struct_Libusb_Interface_Descriptor - hdr := (*reflect.SliceHeader)(unsafe.Pointer(&list)) - hdr.Cap = int(x.num_altsetting) - hdr.Len = int(x.num_altsetting) - hdr.Data = uintptr(unsafe.Pointer(x.altsetting)) + list := unsafe.Slice((*Struct_Libusb_Interface_Descriptor)(unsafe.Pointer(x.altsetting)), int(x.num_altsetting)) altsetting := make([]*Interface_Descriptor, x.num_altsetting) for i := range altsetting { altsetting[i] = (&list[i]).c2go() @@ -567,11 +558,7 @@ type Config_Descriptor struct { } func (x *Struct_Libusb_Config_Descriptor) c2go() *Config_Descriptor { - var list []Struct_Libusb_Interface - hdr := (*reflect.SliceHeader)(unsafe.Pointer(&list)) - hdr.Cap = int(x.bNumInterfaces) - hdr.Len = int(x.bNumInterfaces) - hdr.Data = uintptr(unsafe.Pointer(x._interface)) + list := unsafe.Slice((*Struct_Libusb_Interface)(unsafe.Pointer(x._interface)), int(x.bNumInterfaces)) interfaces := make([]*Interface, x.bNumInterfaces) for i := range interfaces { interfaces[i] = (&list[i]).c2go() @@ -682,12 +669,8 @@ type BOS_Descriptor struct { } func (x *Struct_Libusb_BOS_Descriptor) c2go() *BOS_Descriptor { - var list []*Struct_Libusb_BOS_Dev_Capability_Descriptor x_c := (*C.struct_libusb_bos_descriptor)(x) - hdr := (*reflect.SliceHeader)(unsafe.Pointer(&list)) - hdr.Cap = int(x.bNumDeviceCaps) - hdr.Len = int(x.bNumDeviceCaps) - hdr.Data = uintptr(unsafe.Pointer(C.dev_capability_ptr(x_c))) + list := unsafe.Slice((**Struct_Libusb_BOS_Dev_Capability_Descriptor)(unsafe.Pointer(C.dev_capability_ptr(x_c))), int(x.bNumDeviceCaps)) dev_capability := make([]*BOS_Dev_Capability_Descriptor, x.bNumDeviceCaps) for i := range dev_capability { dev_capability[i] = list[i].c2go() @@ -994,11 +977,7 @@ func Get_Device_List(ctx Context) ([]Device, error) { return nil, &libusb_error{rc} } // turn the c array into a slice of device pointers - var list []Device - hdr := (*reflect.SliceHeader)(unsafe.Pointer(&list)) - hdr.Cap = rc - hdr.Len = rc - hdr.Data = uintptr(unsafe.Pointer(hdl)) + list := unsafe.Slice((*Device)(unsafe.Pointer(hdl)), rc) return list, nil }