From ca50c9cbe6db7c641646320dc7226e00995735af Mon Sep 17 00:00:00 2001 From: GFW-knocker <123458121+GFW-knocker@users.noreply.github.com> Date: Thu, 2 Jan 2025 12:47:03 +0330 Subject: [PATCH] Freedom noises: Support "hex" as `type` & `packet` (#4239) Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com> --- infra/conf/freedom.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/infra/conf/freedom.go b/infra/conf/freedom.go index ad0af360..5eb3e871 100644 --- a/infra/conf/freedom.go +++ b/infra/conf/freedom.go @@ -2,6 +2,7 @@ package conf import ( "encoding/base64" + "encoding/hex" "net" "strings" @@ -166,18 +167,25 @@ func ParseNoise(noise *Noise) (*freedom.Noise, error) { } case "str": - //user input string + // user input string NConfig.Packet = []byte(strings.TrimSpace(noise.Packet)) + case "hex": + // user input hex + NConfig.Packet, err = hex.DecodeString(noise.Packet) + if err != nil { + return nil, errors.New("Invalid hex string").Base(err) + } + case "base64": - //user input base64 + // user input base64 NConfig.Packet, err = base64.StdEncoding.DecodeString(strings.TrimSpace(noise.Packet)) if err != nil { - return nil, errors.New("Invalid base64 string") + return nil, errors.New("Invalid base64 string").Base(err) } default: - return nil, errors.New("Invalid packet, only rand/str/base64 are supported") + return nil, errors.New("Invalid packet, only rand/str/hex/base64 are supported") } if noise.Delay != nil {