-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
64 lines (51 loc) · 1.22 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package main
import (
"flag"
"fmt"
"log"
"os"
)
func main() {
log.SetFlags(log.Lshortfile)
if len(os.Args) < 2 {
fmt.Println("Usage: tlsTest test <hostname or ip>")
flag.PrintDefaults()
os.Exit(1)
}
switch os.Args[1] {
case "test":
testCmd := flag.NewFlagSet("test", flag.ExitOnError)
testPort := testCmd.String("port", "443", "Port")
testName := testCmd.String("name", "", "Server name to validate certificate with.")
testVerify := testCmd.Bool("verify", false, "Verify certificate.")
if len(os.Args) < 3 {
fmt.Println("Usage: tlsTest test <hostname or ip> [-port <port>] [-name <server name>] [-verify]")
flag.PrintDefaults()
os.Exit(1)
}
err := testCmd.Parse(os.Args[3:])
if err != nil {
log.Print(err)
}
log.Print(*testPort)
testHost := os.Args[2]
if *testVerify {
*testVerify = false
}
tlsConn := NewTLSConn()
tlsConn.SetHost(testHost)
tlsConn.SetPort(*testPort)
tlsConn.SetName(*testName)
tlsConn.SetVerify(*testVerify)
err = tlsConn.Dial()
if err != nil {
// TODO: Handle no such host error
log.Print(err)
}
tlsConn.PrintConnectionStatus()
default:
fmt.Println("Usage: tlsTest test -host <hostname or ip>")
flag.PrintDefaults()
os.Exit(1)
}
}