Browse Source

Merge pull request #17427 from 1715173329/xr

xray-core: Update to 1.5.2
lilik-openwrt-22.03
Josef Schlehofer 3 years ago
committed by GitHub
parent
commit
841f4766d1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 2 additions and 188 deletions
  1. +2
    -2
      net/xray-core/Makefile
  2. +0
    -20
      net/xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch
  3. +0
    -114
      net/xray-core/patches/020-grpc-add-initial_windows_size-option.patch
  4. +0
    -52
      net/xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch

+ 2
- 2
net/xray-core/Makefile View File

@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=xray-core
PKG_VERSION:=1.5.1
PKG_VERSION:=1.5.2
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=11b01de5da7efed2a5f066b14bfe5e0299071dc8c32b7f64af5c51daf3abc6c2
PKG_HASH:=b687a8fd1325bee0f6352c8dc3bfb70a7ee07cd74aacaece4e36c93cf7cda417
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
PKG_LICENSE:=MPL-2.0


+ 0
- 20
net/xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch View File

@ -1,20 +0,0 @@
From c8e2a99e68109b386c541dcc157f1f64ca8cbd17 Mon Sep 17 00:00:00 2001
From: xqzr <34030394+xqzr@users.noreply.github.com>
Date: Fri, 17 Dec 2021 00:25:16 +0800
Subject: [PATCH] fix unsupported cipher method: xChaCha20-IETF-Poly1305
---
infra/conf/shadowsocks.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/infra/conf/shadowsocks.go
+++ b/infra/conf/shadowsocks.go
@@ -59,7 +59,7 @@ func (v *ShadowsocksServerConfig) Build(
return nil, newError("Shadowsocks password is not specified.")
}
if account.CipherType < shadowsocks.CipherType_AES_128_GCM ||
- account.CipherType > shadowsocks.CipherType_CHACHA20_POLY1305 {
+ account.CipherType > shadowsocks.CipherType_XCHACHA20_POLY1305 {
return nil, newError("unsupported cipher method: ", user.Cipher)
}
config.Users = append(config.Users, &protocol.User{

+ 0
- 114
net/xray-core/patches/020-grpc-add-initial_windows_size-option.patch View File

@ -1,114 +0,0 @@
From 63da3a548138640f96e631f10d6e2ee1bae3ed62 Mon Sep 17 00:00:00 2001
From: hmol233 <82594500+hmol233@users.noreply.github.com>
Date: Mon, 20 Dec 2021 00:47:21 +0800
Subject: [PATCH] grpc: add initial_windows_size option
---
infra/conf/grpc.go | 7 +++++++
transport/internet/grpc/config.pb.go | 23 +++++++++++++++++------
transport/internet/grpc/config.proto | 1 +
transport/internet/grpc/dial.go | 4 ++++
4 files changed, 29 insertions(+), 6 deletions(-)
--- a/infra/conf/grpc.go
+++ b/infra/conf/grpc.go
@@ -12,6 +12,7 @@ type GRPCConfig struct {
IdleTimeout int32 `json:"idle_timeout"`
HealthCheckTimeout int32 `json:"health_check_timeout"`
PermitWithoutStream bool `json:"permit_without_stream"`
+ InitialWindowsSize int32 `json:"initial_windows_size"`
}
func (g *GRPCConfig) Build() (proto.Message, error) {
@@ -21,11 +22,17 @@ func (g *GRPCConfig) Build() (proto.Mess
if g.HealthCheckTimeout <= 0 {
g.HealthCheckTimeout = 0
}
+ if g.InitialWindowsSize < 0 {
+ // default window size of gRPC-go
+ g.InitialWindowsSize = 0
+ }
+
return &grpc.Config{
ServiceName: g.ServiceName,
MultiMode: g.MultiMode,
IdleTimeout: g.IdleTimeout,
HealthCheckTimeout: g.HealthCheckTimeout,
PermitWithoutStream: g.PermitWithoutStream,
+ InitialWindowsSize: g.InitialWindowsSize,
}, nil
}
--- a/transport/internet/grpc/config.pb.go
+++ b/transport/internet/grpc/config.pb.go
@@ -31,6 +31,7 @@ type Config struct {
IdleTimeout int32 `protobuf:"varint,4,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
HealthCheckTimeout int32 `protobuf:"varint,5,opt,name=health_check_timeout,json=healthCheckTimeout,proto3" json:"health_check_timeout,omitempty"`
PermitWithoutStream bool `protobuf:"varint,6,opt,name=permit_without_stream,json=permitWithoutStream,proto3" json:"permit_without_stream,omitempty"`
+ InitialWindowsSize int32 `protobuf:"varint,7,opt,name=initial_windows_size,json=initialWindowsSize,proto3" json:"initial_windows_size,omitempty"`
}
func (x *Config) Reset() {
@@ -107,6 +108,13 @@ func (x *Config) GetPermitWithoutStream(
return false
}
+func (x *Config) GetInitialWindowsSize() int32 {
+ if x != nil {
+ return x.InitialWindowsSize
+ }
+ return 0
+}
+
var File_transport_internet_grpc_config_proto protoreflect.FileDescriptor
var file_transport_internet_grpc_config_proto_rawDesc = []byte{
@@ -114,7 +122,7 @@ var file_transport_internet_grpc_config_
0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x74, 0x72, 0x61,
0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2e,
- 0x67, 0x72, 0x70, 0x63, 0x2e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xe7, 0x01,
+ 0x67, 0x72, 0x70, 0x63, 0x2e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x99, 0x02,
0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c,
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
@@ -129,11 +137,14 @@ var file_transport_internet_grpc_config_
0x6f, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x5f, 0x77, 0x69,
0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01,
0x28, 0x08, 0x52, 0x13, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75,
- 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75,
- 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61, 0x79, 0x2d,
- 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x69,
- 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
+ 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x69,
+ 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x57, 0x69,
+ 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74,
+ 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61,
+ 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
+ 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
--- a/transport/internet/grpc/config.proto
+++ b/transport/internet/grpc/config.proto
@@ -10,4 +10,5 @@ message Config {
int32 idle_timeout = 4;
int32 health_check_timeout = 5;
bool permit_without_stream = 6;
+ int32 initial_windows_size = 7;
}
--- a/transport/internet/grpc/dial.go
+++ b/transport/internet/grpc/dial.go
@@ -135,6 +135,10 @@ func getGrpcClient(ctx context.Context,
}))
}
+ if grpcSettings.InitialWindowsSize > 0 {
+ dialOptions = append(dialOptions, grpc.WithInitialWindowSize(grpcSettings.InitialWindowsSize))
+ }
+
var grpcDestHost string
if dest.Address.Family().IsDomain() {
grpcDestHost = dest.Address.Domain()

+ 0
- 52
net/xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch View File

@ -1,52 +0,0 @@
From 9ea1bf7c1dfad892aafc8807b56ce398bb2eb819 Mon Sep 17 00:00:00 2001
From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com>
Date: Sat, 18 Dec 2021 23:23:09 -0500
Subject: [PATCH] Fix shadowsocks xchacha cipher nonce size
---
common/crypto/auth.go | 4 ----
proxy/shadowsocks/protocol.go | 2 +-
proxy/shadowsocks/validator.go | 6 +++---
3 files changed, 4 insertions(+), 8 deletions(-)
--- a/common/crypto/auth.go
+++ b/common/crypto/auth.go
@@ -39,10 +39,6 @@ func GenerateIncreasingNonce(nonce []byt
}
}
-func GenerateInitialAEADNonce() BytesGenerator {
- return GenerateIncreasingNonce([]byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF})
-}
-
func GenerateAEADNonceWithSize(nonceSize int) BytesGenerator {
c := make([]byte, nonceSize)
for i := 0; i < nonceSize; i++ {
--- a/proxy/shadowsocks/protocol.go
+++ b/proxy/shadowsocks/protocol.go
@@ -86,7 +86,7 @@ func ReadTCPSession(validator *Validator
if aead != nil {
auth := &crypto.AEADAuthenticator{
AEAD: aead,
- NonceGenerator: crypto.GenerateInitialAEADNonce(),
+ NonceGenerator: crypto.GenerateAEADNonceWithSize(aead.NonceSize()),
}
r = crypto.NewAuthenticationReader(auth, &crypto.AEADChunkSizeParser{
Auth: auth,
--- a/proxy/shadowsocks/validator.go
+++ b/proxy/shadowsocks/validator.go
@@ -93,11 +93,11 @@ func (v *Validator) Get(bs []byte, comma
var matchErr error
switch command {
case protocol.RequestCommandTCP:
- data := make([]byte, 16)
- ret, matchErr = aead.Open(data[:0], data[4:16], bs[ivLen:ivLen+18], nil)
+ data := make([]byte, 4+aead.NonceSize())
+ ret, matchErr = aead.Open(data[:0], data[4:], bs[ivLen:ivLen+18], nil)
case protocol.RequestCommandUDP:
data := make([]byte, 8192)
- ret, matchErr = aead.Open(data[:0], data[8180:8192], bs[ivLen:], nil)
+ ret, matchErr = aead.Open(data[:0], data[8192-aead.NonceSize():8192], bs[ivLen:], nil)
}
if matchErr == nil {

Loading…
Cancel
Save