mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-09-01 16:01:55 +03:00
Generate tls secrets
This commit is contained in:
+2
-2
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/9seconds/mtg/config"
|
"github.com/9seconds/mtg/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Generate(secretType string) {
|
func Generate(secretType, hostname string) {
|
||||||
data := make([]byte, config.SimpleSecretLength)
|
data := make([]byte, config.SimpleSecretLength)
|
||||||
if _, err := rand.Read(data); err != nil {
|
if _, err := rand.Read(data); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@@ -21,6 +21,6 @@ func Generate(secretType string) {
|
|||||||
case "secured":
|
case "secured":
|
||||||
PrintStdout("dd" + secret)
|
PrintStdout("dd" + secret)
|
||||||
default:
|
default:
|
||||||
Fatal("Unknown secret type " + secret)
|
PrintStdout("ee" + secret + hex.EncodeToString([]byte(hostname)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -169,6 +169,11 @@ func Init(options ...Opt) error { // nolint: gocyclo, funlen
|
|||||||
C.Secret = bytes.TrimPrefix(C.Secret, []byte{0xdd})
|
C.Secret = bytes.TrimPrefix(C.Secret, []byte{0xdd})
|
||||||
case len(C.Secret) == SimpleSecretLength:
|
case len(C.Secret) == SimpleSecretLength:
|
||||||
C.SecretMode = SecretModeSimple
|
C.SecretMode = SecretModeSimple
|
||||||
|
case bytes.HasPrefix(C.Secret, []byte{0xee}):
|
||||||
|
C.SecretMode = SecretModeTLS
|
||||||
|
secret := bytes.TrimPrefix(C.Secret, []byte{0xee})
|
||||||
|
C.Secret = secret[:SimpleSecretLength]
|
||||||
|
C.CloakHost = string(secret[SimpleSecretLength:])
|
||||||
default:
|
default:
|
||||||
return errors.New("incorrect secret")
|
return errors.New("incorrect secret")
|
||||||
}
|
}
|
||||||
@@ -225,10 +230,5 @@ func Printable() interface{} {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
rrv, err := json.Marshal(rv)
|
return rv
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return rrv
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ var (
|
|||||||
|
|
||||||
generateSecretCommand = app.Command("generate-secret",
|
generateSecretCommand = app.Command("generate-secret",
|
||||||
"Generate new secret")
|
"Generate new secret")
|
||||||
|
generateCloakHost = generateSecretCommand.Flag("cloak-host",
|
||||||
|
"A host to use for TLS cloaking.").
|
||||||
|
Short('c').
|
||||||
|
Default("storage.googleapis.com").
|
||||||
|
String()
|
||||||
generateSecretType = generateSecretCommand.Arg("type",
|
generateSecretType = generateSecretCommand.Arg("type",
|
||||||
"A type of secret to generate. Valid options are 'simple', 'secured' and 'tls'").
|
"A type of secret to generate. Valid options are 'simple', 'secured' and 'tls'").
|
||||||
Required().
|
Required().
|
||||||
@@ -123,7 +128,7 @@ func main() {
|
|||||||
|
|
||||||
switch kingpin.MustParse(app.Parse(os.Args[1:])) {
|
switch kingpin.MustParse(app.Parse(os.Args[1:])) {
|
||||||
case generateSecretCommand.FullCommand():
|
case generateSecretCommand.FullCommand():
|
||||||
cli.Generate(*generateSecretType)
|
cli.Generate(*generateSecretType, *generateCloakHost)
|
||||||
case proxyCommand.FullCommand():
|
case proxyCommand.FullCommand():
|
||||||
err := config.Init(
|
err := config.Init(
|
||||||
config.Opt{Option: config.OptionTypeDebug, Value: *proxyDebug},
|
config.Opt{Option: config.OptionTypeDebug, Value: *proxyDebug},
|
||||||
|
|||||||
Reference in New Issue
Block a user