starpc 0.33.9 → 0.33.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/go.mod CHANGED
@@ -2,27 +2,29 @@ module github.com/aperturerobotics/starpc
2
2
 
3
3
  go 1.22
4
4
 
5
- // This fork uses go-protobuf-lite and adds post-quantum crypto support.
6
- replace github.com/libp2p/go-libp2p => github.com/aperturerobotics/go-libp2p v0.33.1-0.20240511072027-002c32698a19 // aperture
5
+ replace (
6
+ // This fork avoids importing net/http on wasm.
7
+ github.com/coder/websocket => github.com/paralin/nhooyr-websocket v1.8.13-0.20240820051708-db89d1b29ef8 // aperture-2
7
8
 
8
- // This fork uses go-protobuf-lite.
9
- replace github.com/libp2p/go-msgio => github.com/aperturerobotics/go-libp2p-msgio v0.0.0-20240511033615-1b69178aa5c8 // aperture
9
+ // This fork uses go-protobuf-lite and adds post-quantum crypto support.
10
+ github.com/libp2p/go-libp2p => github.com/aperturerobotics/go-libp2p v0.33.1-0.20240511072027-002c32698a19 // aperture
10
11
 
11
- // This fork avoids importing net/http on wasm.
12
- replace nhooyr.io/websocket => github.com/paralin/nhooyr-websocket v1.8.12-0.20240504231911-2358de657064 // aperture-1
12
+ // This fork uses go-protobuf-lite.
13
+ github.com/libp2p/go-msgio => github.com/aperturerobotics/go-libp2p-msgio v0.0.0-20240511033615-1b69178aa5c8 // aperture
14
+ )
13
15
 
14
16
  require (
15
17
  github.com/aperturerobotics/protobuf-go-lite v0.6.5 // latest
16
- github.com/aperturerobotics/util v1.25.7 // latest
18
+ github.com/aperturerobotics/util v1.25.8 // latest
17
19
  )
18
20
 
19
21
  require (
20
- github.com/libp2p/go-libp2p v0.36.1 // latest
21
- github.com/libp2p/go-yamux/v4 v4.0.2-0.20240322071716-53ef5820bd48 // master
22
+ github.com/coder/websocket v1.8.12 // latest
23
+ github.com/libp2p/go-libp2p v0.36.3 // latest
24
+ github.com/libp2p/go-yamux/v4 v4.0.2-0.20240826150533-e92055b23e0e // master
22
25
  github.com/pkg/errors v0.9.1 // latest
23
26
  github.com/sirupsen/logrus v1.9.3 // latest
24
27
  google.golang.org/protobuf v1.34.2 // latest
25
- nhooyr.io/websocket v1.8.17 // latest
26
28
  )
27
29
 
28
30
  require (
@@ -42,7 +44,7 @@ require (
42
44
  github.com/multiformats/go-varint v0.0.7 // indirect
43
45
  github.com/spaolacci/murmur3 v1.1.0 // indirect
44
46
  golang.org/x/crypto v0.19.0 // indirect
45
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
47
+ golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa // indirect
46
48
  golang.org/x/sys v0.18.0 // indirect
47
49
  lukechampine.com/blake3 v1.2.1 // indirect
48
50
  )
package/go.sum CHANGED
@@ -4,8 +4,8 @@ github.com/aperturerobotics/json-iterator-lite v1.0.0 h1:cihbrYWoK/S2RYXhJLpDZd+
4
4
  github.com/aperturerobotics/json-iterator-lite v1.0.0/go.mod h1:snaApCEDtrHHP6UWSLKiYNOZU9A5NyzccKenx9oZEzg=
5
5
  github.com/aperturerobotics/protobuf-go-lite v0.6.5 h1:AuPPcZ7ZaJe9ZYYC4gF7/5/Xbn9Mt9uXyV3+ADWy+Ys=
6
6
  github.com/aperturerobotics/protobuf-go-lite v0.6.5/go.mod h1:YTbfnUj3feSULhs8VgepAHFnF3wUc0CPj4jd2axy21I=
7
- github.com/aperturerobotics/util v1.25.7 h1:e9fdF3W/E7IHdl7YAJC0jjuxGph7yzE3a5zZoLFJ3G0=
8
- github.com/aperturerobotics/util v1.25.7/go.mod h1:G5ybyxaL62Rdv0K5ZGqu+D1NfqlZCLYPQhdfiYhxlAg=
7
+ github.com/aperturerobotics/util v1.25.8 h1:ERuWwwrtm1qKO/uIQOIlprmnVd5WRtm8YhDjlpJ0yV0=
8
+ github.com/aperturerobotics/util v1.25.8/go.mod h1:Dx1gWoi21JgnWRXfMWjyhInQjulW3OfrcwEVwrxarQQ=
9
9
  github.com/cloudflare/circl v1.3.8 h1:j+V8jJt09PoeMFIu2uh5JUyEaIHTXVOHslFoLNAKqwI=
10
10
  github.com/cloudflare/circl v1.3.8/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
11
11
  github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -21,8 +21,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6
21
21
  github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
22
22
  github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA=
23
23
  github.com/libp2p/go-libp2p-testing v0.12.0/go.mod h1:KcGDRXyN7sQCllucn1cOOS+Dmm7ujhfEyXQL5lvkcPg=
24
- github.com/libp2p/go-yamux/v4 v4.0.2-0.20240322071716-53ef5820bd48 h1:KI65sCCL2h9IyCQwBhBXDgkKt3bmXoTu8T3rLVLZW4I=
25
- github.com/libp2p/go-yamux/v4 v4.0.2-0.20240322071716-53ef5820bd48/go.mod h1:PGP+3py2ZWDKABvqstBZtMnixEHNC7U/odnGylzur5o=
24
+ github.com/libp2p/go-yamux/v4 v4.0.2-0.20240826150533-e92055b23e0e h1:Luuxp/lnfmJjQgGgAh5kmMZalC+8EVh/bYNQ8vS6d7I=
25
+ github.com/libp2p/go-yamux/v4 v4.0.2-0.20240826150533-e92055b23e0e/go.mod h1:C808cCRgOs1iBwY4S71T5oxgMxgLmqUw56qh4AeBW2o=
26
26
  github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
27
27
  github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
28
28
  github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
@@ -41,8 +41,8 @@ github.com/multiformats/go-multistream v0.5.0 h1:5htLSLl7lvJk3xx3qT/8Zm9J4K8vEOf
41
41
  github.com/multiformats/go-multistream v0.5.0/go.mod h1:n6tMZiwiP2wUsR8DgfDWw1dydlEqV3l6N3/GBsX6ILA=
42
42
  github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8=
43
43
  github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU=
44
- github.com/paralin/nhooyr-websocket v1.8.12-0.20240504231911-2358de657064 h1:JV7i3sVQ6S4YhpBmTTPuRVH9WUM1xmqApX4Ffb5rOZQ=
45
- github.com/paralin/nhooyr-websocket v1.8.12-0.20240504231911-2358de657064/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c=
44
+ github.com/paralin/nhooyr-websocket v1.8.13-0.20240820051708-db89d1b29ef8 h1:OZrehfqYOUl5q43cd3dvEes1zftihzNb/pN/nhzwdOg=
45
+ github.com/paralin/nhooyr-websocket v1.8.13-0.20240820051708-db89d1b29ef8/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs=
46
46
  github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
47
47
  github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
48
48
  github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -57,8 +57,8 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
57
57
  github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
58
58
  golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
59
59
  golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
60
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
61
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
60
+ golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa h1:ELnwvuAXPNtPk1TJRuGkI9fDTwym6AYBu0qzT8AcHdI=
61
+ golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
62
62
  golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
63
63
  golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
64
64
  golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "starpc",
3
- "version": "0.33.9",
3
+ "version": "0.33.11",
4
4
  "description": "Streaming protobuf RPC service protocol over any two-way channel.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -113,6 +113,6 @@
113
113
  "ws": "^8.17.0"
114
114
  },
115
115
  "resolutions": {
116
- "@aptre/protobuf-es-lite": "0.4.6"
116
+ "@aptre/protobuf-es-lite": "0.4.7"
117
117
  }
118
118
  }
package/srpc/packet-rw.go CHANGED
@@ -5,6 +5,7 @@ import (
5
5
  "context"
6
6
  "encoding/binary"
7
7
  "io"
8
+ "math"
8
9
  "sync"
9
10
 
10
11
  "github.com/pkg/errors"
@@ -42,8 +43,15 @@ func (r *PacketReadWriter) WritePacket(p *Packet) error {
42
43
  defer r.writeMtx.Unlock()
43
44
 
44
45
  msgSize := p.SizeVT()
46
+
47
+ // G115: integer overflow conversion int -> uint32 (gosec)
48
+ if msgSize > math.MaxUint32 {
49
+ return errors.New("message size exceeds maximum uint32 value")
50
+ }
51
+
45
52
  data := make([]byte, 4+msgSize)
46
- binary.LittleEndian.PutUint32(data, uint32(msgSize))
53
+ binary.LittleEndian.PutUint32(data, uint32(msgSize)) //nolint:gosec
54
+
47
55
  _, err := p.MarshalToSizedBufferVT(data[4:])
48
56
  if err != nil {
49
57
  return err
@@ -7,7 +7,7 @@ import (
7
7
  "io"
8
8
  "net/http"
9
9
 
10
- "nhooyr.io/websocket"
10
+ "github.com/coder/websocket"
11
11
  )
12
12
 
13
13
  // HTTPServer implements the SRPC HTTP/WebSocket server.
package/srpc/websocket.go CHANGED
@@ -3,9 +3,9 @@ package srpc
3
3
  import (
4
4
  "context"
5
5
 
6
+ "github.com/coder/websocket"
6
7
  "github.com/libp2p/go-libp2p/core/network"
7
8
  "github.com/libp2p/go-yamux/v4"
8
- "nhooyr.io/websocket"
9
9
  )
10
10
 
11
11
  // NewWebSocketConn wraps a websocket into a MuxedConn.