fix: shadowsocks

This commit is contained in:
cubemaze 2023-08-07 09:50:48 +08:00
parent e301f9c68c
commit 07acba96bf
2 changed files with 10 additions and 2 deletions

View File

@ -116,8 +116,8 @@ func getInboundOptions(tag string, info *panel.NodeInfo, c *conf.Options) (optio
_, _ = rand.Read(p) _, _ = rand.Read(p)
randomPasswd := hex.EncodeToString(p) randomPasswd := hex.EncodeToString(p)
if strings.Contains(info.Cipher, "2022") { if strings.Contains(info.Cipher, "2022") {
in.ShadowsocksOptions.Password = info.ServerKey
randomPasswd = base64.StdEncoding.EncodeToString([]byte(randomPasswd)) randomPasswd = base64.StdEncoding.EncodeToString([]byte(randomPasswd))
in.ShadowsocksOptions.Password = randomPasswd
} }
in.ShadowsocksOptions.Users = []option.ShadowsocksUser{{ in.ShadowsocksOptions.Users = []option.ShadowsocksUser{{
Password: randomPasswd, Password: randomPasswd,

View File

@ -1,6 +1,7 @@
package sing package sing
import ( import (
"encoding/base64"
"errors" "errors"
"github.com/InazumaV/V2bX/api/panel" "github.com/InazumaV/V2bX/api/panel"
@ -36,9 +37,16 @@ func (b *Box) AddUsers(p *core.AddUsersParams) (added int, err error) {
case "shadowsocks": case "shadowsocks":
us := make([]option.ShadowsocksUser, len(p.UserInfo)) us := make([]option.ShadowsocksUser, len(p.UserInfo))
for i := range p.UserInfo { for i := range p.UserInfo {
var password = p.UserInfo[i].Uuid
switch p.NodeInfo.Cipher {
case "2022-blake3-aes-128-gcm":
password = base64.StdEncoding.EncodeToString([]byte(password[:16]))
case "2022-blake3-aes-256-gcm":
password = base64.StdEncoding.EncodeToString([]byte(password[:32]))
}
us[i] = option.ShadowsocksUser{ us[i] = option.ShadowsocksUser{
Name: p.UserInfo[i].Uuid, Name: p.UserInfo[i].Uuid,
Password: p.UserInfo[i].Uuid, Password: password,
} }
} }
err = b.inbounds[p.Tag].(*inbound.ShadowsocksMulti).AddUsers(us) err = b.inbounds[p.Tag].(*inbound.ShadowsocksMulti).AddUsers(us)