From 2287794be21dca6f1223fe2a1d6807b76e2eed03 Mon Sep 17 00:00:00 2001 From: Jean-Louis Huynen Date: Tue, 15 Jan 2019 11:24:55 +0100 Subject: [PATCH] initial working tls connection --- d4-goclient.go | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/d4-goclient.go b/d4-goclient.go index f38e73f..742d60b 100644 --- a/d4-goclient.go +++ b/d4-goclient.go @@ -4,6 +4,7 @@ import ( "bytes" "crypto/hmac" "crypto/sha256" + "crypto/tls" "encoding/binary" "flag" "fmt" @@ -197,13 +198,22 @@ func d4checkConfig(d4 *d4S) bool { f, _ := os.Open("capture.pcap") (*d4).src = f } - - switch (*d4).conf.destination { - case "stdout": - (*d4).dst = newD4Writer(os.Stdout, (*d4).conf.key) - case "file": - f, _ := os.Create("test.txt") - (*d4).dst = newD4Writer(f, (*d4).conf.key) + isn, dstnet := isNet((*d4).conf.destination) + if isn { + //conn, err := net.Dial("tcp", dstnet[0]+":"+dstnet[1]) + conn, err := tls.Dial("tcp", dstnet[0]+":"+dstnet[1], &tls.Config{InsecureSkipVerify: true}) + if err != nil { + log.Fatal(err) + } + (*d4).dst = newD4Writer(conn, (*d4).conf.key) + } else { + switch (*d4).conf.destination { + case "stdout": + (*d4).dst = newD4Writer(os.Stdout, (*d4).conf.key) + case "file": + f, _ := os.Create("test.txt") + (*d4).dst = newD4Writer(f, (*d4).conf.key) + } } // Create the copy buffer @@ -213,15 +223,15 @@ func d4checkConfig(d4 *d4S) bool { return true } -func isNet(d []byte) (bool, []string) { +func isNet(d string) (bool, []string) { ss := strings.Split(string(d), ":") if len(ss) != 1 { if net.ParseIP(ss[0]) != nil { infof(fmt.Sprintf("Server IP: %s, Server Port: %s\n", ss[0], ss[1])) - return true, make([]string, 0) + return true, ss } } - return false, ss + return false, make([]string, 0) } func generateUUIDv4() []byte {