Browse Source

Add back tls certChainHash command

Shelikhoo 1 year ago
parent
commit
80f1e2fa17
2 changed files with 35 additions and 0 deletions
  1. 34 0
      main/commands/all/tls/chainhash.go
  2. 1 0
      main/commands/all/tls/tls.go

+ 34 - 0
main/commands/all/tls/chainhash.go

@@ -0,0 +1,34 @@
+package tls
+
+import (
+	"fmt"
+	"os"
+
+	"github.com/v2fly/v2ray-core/v5/main/commands/base"
+	v2tls "github.com/v2fly/v2ray-core/v5/transport/internet/tls"
+)
+
+var cmdChainHash = &base.Command{
+	UsageLine: "{{.Exec}} tls certChainHash [--cert <cert.pem>]",
+	Short:     "Generate certificate chain hash for given certificate bundle",
+}
+
+func init() {
+	cmdChainHash.Run = executeChainHash // break init loop
+}
+
+var certFile = cmdChainHash.Flag.String("cert", "cert.pem", "")
+
+func executeChainHash(cmd *base.Command, args []string) {
+	if len(*certFile) == 0 {
+		base.Fatalf("cert file not specified")
+	}
+	certContent, err := os.ReadFile(*certFile)
+	if err != nil {
+		base.Fatalf("Failed to read cert file: %s", err)
+		return
+	}
+
+	certChainHashB64 := v2tls.CalculatePEMCertChainSHA256Hash(certContent)
+	fmt.Println(certChainHashB64)
+}

+ 1 - 0
main/commands/all/tls/tls.go

@@ -14,5 +14,6 @@ var CmdTLS = &base.Command{
 	Commands: []*base.Command{
 	Commands: []*base.Command{
 		cmdCert,
 		cmdCert,
 		cmdPing,
 		cmdPing,
+		cmdChainHash,
 	},
 	},
 }
 }