Skip to content

Commit

Permalink
Freedom noises: Support "hex" as type & packet (#4239)
Browse files Browse the repository at this point in the history
Co-authored-by: RPRX <[email protected]>
  • Loading branch information
GFW-knocker and RPRX authored Jan 2, 2025
1 parent 33186ca commit ca50c9c
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions infra/conf/freedom.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package conf

import (
"encoding/base64"
"encoding/hex"
"net"
"strings"

Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit ca50c9c

Please sign in to comment.