Sfoglia il codice sorgente

Commands: Output certificate chain's total length in `tls ping` (#4933)

Co-authored-by: RPRX <[email protected]>
风扇滑翔翼 10 mesi fa
parent
commit
87d8b97d9a
1 ha cambiato i file con 11 aggiunte e 5 eliminazioni
  1. 11 5
      main/commands/all/tls/ping.go

+ 11 - 5
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)
 	}
 }