feat(shadowsocks): SIP022 AEAD-2022 Ciphers
This commit is contained in:
parent
ddf740600f
commit
1a21984c27
@ -56,7 +56,7 @@ func (l *CreateNodeLogic) CreateNode(req *types.CreateNodeRequest) error {
|
|||||||
serverInfo.RelayNode = string(nodeRelay)
|
serverInfo.RelayNode = string(nodeRelay)
|
||||||
if req.Protocol == "vless" {
|
if req.Protocol == "vless" {
|
||||||
var cfg types.Vless
|
var cfg types.Vless
|
||||||
if err := json.Unmarshal(config, &cfg); err != nil {
|
if err = json.Unmarshal(config, &cfg); err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "json.Unmarshal error: %v", err.Error())
|
return errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "json.Unmarshal error: %v", err.Error())
|
||||||
}
|
}
|
||||||
if cfg.Security == "reality" && cfg.SecurityConfig.RealityPublicKey == "" {
|
if cfg.Security == "reality" && cfg.SecurityConfig.RealityPublicKey == "" {
|
||||||
@ -76,6 +76,26 @@ func (l *CreateNodeLogic) CreateNode(req *types.CreateNodeRequest) error {
|
|||||||
}
|
}
|
||||||
config, _ = json.Marshal(cfg)
|
config, _ = json.Marshal(cfg)
|
||||||
serverInfo.Config = string(config)
|
serverInfo.Config = string(config)
|
||||||
|
} else if req.Protocol == "shadowsocks" {
|
||||||
|
var cfg types.Shadowsocks
|
||||||
|
if err = json.Unmarshal(config, &cfg); err != nil {
|
||||||
|
l.Errorf("[CreateNode] Unmarshal Shadowsocks Config Error: %v", err.Error())
|
||||||
|
return errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "json.Unmarshal error: %v", err.Error())
|
||||||
|
}
|
||||||
|
if strings.Contains(cfg.Method, "2022") {
|
||||||
|
var length int
|
||||||
|
switch cfg.Method {
|
||||||
|
case "2022-blake3-aes-128-gcm":
|
||||||
|
length = 16
|
||||||
|
default:
|
||||||
|
length = 32
|
||||||
|
}
|
||||||
|
if len(cfg.ServerKey) != length {
|
||||||
|
cfg.ServerKey = tool.GenerateCipher(cfg.ServerKey, length)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
config, _ = json.Marshal(cfg)
|
||||||
|
serverInfo.Config = string(config)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = l.svcCtx.ServerModel.Insert(l.ctx, &serverInfo)
|
err = l.svcCtx.ServerModel.Insert(l.ctx, &serverInfo)
|
||||||
|
|||||||
@ -86,6 +86,26 @@ func (l *UpdateNodeLogic) UpdateNode(req *types.UpdateNodeRequest) error {
|
|||||||
}
|
}
|
||||||
config, _ = json.Marshal(cfg)
|
config, _ = json.Marshal(cfg)
|
||||||
nodeInfo.Config = string(config)
|
nodeInfo.Config = string(config)
|
||||||
|
} else if req.Protocol == "shadowsocks" {
|
||||||
|
var cfg types.Shadowsocks
|
||||||
|
if err = json.Unmarshal(config, &cfg); err != nil {
|
||||||
|
l.Errorf("[CreateNode] Unmarshal Shadowsocks Config Error: %v", err.Error())
|
||||||
|
return errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "json.Unmarshal error: %v", err.Error())
|
||||||
|
}
|
||||||
|
if strings.Contains(cfg.Method, "2022") {
|
||||||
|
var length int
|
||||||
|
switch cfg.Method {
|
||||||
|
case "2022-blake3-aes-128-gcm":
|
||||||
|
length = 16
|
||||||
|
default:
|
||||||
|
length = 32
|
||||||
|
}
|
||||||
|
if len(cfg.ServerKey) != length {
|
||||||
|
cfg.ServerKey = tool.GenerateCipher(cfg.ServerKey, length)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
config, _ = json.Marshal(cfg)
|
||||||
|
nodeInfo.Config = string(config)
|
||||||
}
|
}
|
||||||
err = l.svcCtx.ServerModel.Update(l.ctx, nodeInfo)
|
err = l.svcCtx.ServerModel.Update(l.ctx, nodeInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestGenerateCipher(t *testing.T) {
|
func TestGenerateCipher(t *testing.T) {
|
||||||
pwd := GenerateCipher("serverKey", 128)
|
pwd := GenerateCipher("", 16)
|
||||||
t.Logf("pwd: %s", pwd)
|
t.Logf("pwd: %s", pwd)
|
||||||
|
t.Logf("pwd length: %d", len(pwd))
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user