certchainhash.go 966 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package tls
  2. import (
  3. "flag"
  4. "fmt"
  5. "io/ioutil"
  6. "github.com/xtls/xray-core/main/commands/base"
  7. "github.com/xtls/xray-core/transport/internet/tls"
  8. )
  9. var cmdCertChainHash = &base.Command{
  10. UsageLine: "{{.Exec}} certChainHash",
  11. Short: "Calculate TLS certificates hash.",
  12. Long: `
  13. xray tls certChainHash --cert <cert.pem>
  14. Calculate TLS certificate chain hash.
  15. `,
  16. }
  17. func init() {
  18. cmdCertChainHash.Run = executeCertChainHash // break init loop
  19. }
  20. var input = cmdCertChainHash.Flag.String("cert", "fullchain.pem", "The file path of the certificates chain")
  21. func executeCertChainHash(cmd *base.Command, args []string) {
  22. fs := flag.NewFlagSet("certChainHash", flag.ContinueOnError)
  23. if err := fs.Parse(args); err != nil {
  24. fmt.Println(err)
  25. return
  26. }
  27. certContent, err := ioutil.ReadFile(*input)
  28. if err != nil {
  29. fmt.Println(err)
  30. return
  31. }
  32. certChainHashB64 := tls.CalculatePEMCertChainSHA256Hash(certContent)
  33. fmt.Println(certChainHashB64)
  34. return
  35. }