diff --git a/cmd/generate-mtproto-secret/main.go b/cmd/generate-mtproto-secret/main.go new file mode 100644 index 00000000..d56d41e2 --- /dev/null +++ b/cmd/generate-mtproto-secret/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "crypto/rand" + "os" + + "github.com/sagernet/sing-box/log" + "github.com/sagernet/sing-box/transport/mtproto" + + "github.com/spf13/cobra" +) + +var mainCommand = &cobra.Command{ + Use: "generate-mtproto-secret ", + Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + err := generate(args[0]) + if err != nil { + log.Fatal(err) + } + }, +} + +func main() { + if err := mainCommand.Execute(); err != nil { + log.Fatal(err) + } +} + +func generate(hostname string) error { + secret := mtproto.Secret{ + Host: hostname, + } + _, err := rand.Read(secret.Key[:]) + if err != nil { + return err + } + _, err = os.Stdout.WriteString(secret.String() + "\n") + return err +}