shadowTLS/shadow/client_test.go

67 lines
1.1 KiB
Go

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))
}