package shadow import ( "bytes" "crypto/md5" "crypto/tls" "fmt" "net" "testing" "time" ) func TestHandshake(t *testing.T) { dial, err := tls.DialWithDialer(&net.Dialer{ Timeout: time.Second * 5, }, "tcp", "evan.run:443", &tls.Config{ ServerName: "evan.run", }) err = dial.Handshake() if err != nil { fmt.Println(err) } time.Sleep(time.Minute) } func TestMd5(t *testing.T) { key := "Passwd" passwd := []byte(key) buf := make([]byte, 32) srcCode := md5.Sum(RandomByte(16)) copy(buf[0:], srcCode[0:]) buffer := bytes.NewBuffer(srcCode[:]) sum := md5.Sum(passwd) buffer.Write(sum[:]) hash := md5.Sum(buffer.Bytes()) copy(buf[16:], hash[0:]) fmt.Println(buf) vBuf := make([]byte, 32) copy(vBuf, buf[0:16]) verifyBuf := bytes.NewBuffer(vBuf) verifyBuf.Write(sum[:]) verifyHash := md5.Sum(buffer.Bytes()) if bytes.Equal(verifyHash[:], buf[16:32]) { fmt.Println("GOOD") } if VerifyKey(buf, key) { fmt.Println("VerifyKey GOOD") } } func TestAes(t *testing.T) { key := []byte("1234567812345678") data := []byte("AVC") e := AesEncryptCBC(data, key) d := AesDecryptCBC(e, key) fmt.Println(string(d)) }