From 87d8b97d9a253fe0961d9e473e140160182d7023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E6=89=87=E6=BB=91=E7=BF=94=E7=BF=BC?= Date: Fri, 25 Jul 2025 18:18:26 +0800 Subject: [PATCH] Commands: Output certificate chain's total length in `tls ping` (#4933) Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com> --- main/commands/all/tls/ping.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/main/commands/all/tls/ping.go b/main/commands/all/tls/ping.go index fa6409ca..d289bc65 100644 --- a/main/commands/all/tls/ping.go +++ b/main/commands/all/tls/ping.go @@ -122,13 +122,19 @@ func executePing(cmd *base.Command, args []string) { } func printCertificates(certs []*x509.Certificate) { + var leaf *x509.Certificate + var length int for _, cert := range certs { - if len(cert.DNSNames) == 0 { - continue + length += len(cert.Raw) + if len(cert.DNSNames) != 0 { + leaf = cert } - fmt.Println("Cert's signature algorithm: ", cert.SignatureAlgorithm.String()) - fmt.Println("Cert's publicKey algorithm: ", cert.PublicKeyAlgorithm.String()) - fmt.Println("Cert's allowed domains: ", cert.DNSNames) + } + fmt.Println("Certificate chain's total length: ", length, "(certs count: "+strconv.Itoa(len(certs))+")") + if leaf != nil { + fmt.Println("Cert's signature algorithm: ", leaf.SignatureAlgorithm.String()) + fmt.Println("Cert's publicKey algorithm: ", leaf.PublicKeyAlgorithm.String()) + fmt.Println("Cert's allowed domains: ", leaf.DNSNames) } }