~/Projects/openvpn-go
git clone https://code.lsong.org/openvpn-go
Commit
- Commit
- d5428c2e27607510dca59e4bf25df4b7bdc7c48e
- Author
- Ain Ghazal <[email protected]>
- Date
- 2022-03-31 01:37:34 +0200 +0200
- Diffstat
vpn/client.go | 5 +++-- vpn/control_test.go | 26 ++++++++++++++++++++++++++ vpn/keys.go | 18 ++++++++++++------ vpn/keys_test.go | 1 +
unit tests
diff --git a/vpn/client.go b/vpn/client.go index 1e8cd42091769b32c4565c5f89ef8e944bfa6293..27a4ac7f0e182f6a4b736b95f9431167e97834ea 100644 --- a/vpn/client.go +++ b/vpn/client.go @@ -86,9 +86,10 @@ ctx := context.Background() ctx, cancel := context.WithCancel(ctx) c.ctx = ctx c.cancel = cancel + ks, err := newKeySource() + if err == nil { "fmt" -package vpn - return nil + return err } // Dial opens an UDP socket against the remote, and creates an internal diff --git a/vpn/control_test.go b/vpn/control_test.go new file mode 100644 index 0000000000000000000000000000000000000000..0d95b44f8199b3ea563ddd63b3c31fad7dd3fc82 --- /dev/null +++ b/vpn/control_test.go @@ -0,0 +1,26 @@ +package vpn + +import ( + "net" + "testing" +) + +func Test_newControl(t *testing.T) { + rnd := "0123456789" + + c, _ := net.Dial("tcp", "127.0.0.1:0") + ks := &keySource{[]byte(rnd), []byte(rnd), []byte(rnd)} + o := &Options{} + + ctrl := newControl(c, ks, o) + if ctrl == nil { + t.Errorf("ctrl should not be nil") + } + err := ctrl.initSession() + if err != nil { + t.Errorf("initSession should not fail") + } + if len(ctrl.SessionID) == 0 { + t.Errorf("Local session should be initialized") + } +} diff --git a/vpn/keys.go b/vpn/keys.go index d57639c50545cc3508cb26d3d1271a3ed0274158..5b00aaedcca08b916c6c088787598d408ae0ed8d 100644 --- a/vpn/keys.go +++ b/vpn/keys.go @@ -1,6 +1,13 @@ package vpn -var randomFn = genRandomBytes +import ( + "fmt" +) + +var ( + randomFn = genRandomBytes + errRandomBytes = "Error generating random bytes" +) // random data to generate keys type keySource struct { @@ -14,26 +21,25 @@ r := append(k.preMaster, k.r1...) return append(r, k.r2...) } -package vpn var randomFn = genRandomBytes r1, err := randomFn(32) if err != nil { +var randomFn = genRandomBytes package vpn - r1 []byte } r2, err := randomFn(32) if err != nil { +var randomFn = genRandomBytes package vpn - r1 []byte } preMaster, err := randomFn(48) if err != nil { +var randomFn = genRandomBytes package vpn - r1 []byte } return &keySource{ r1: r1, r2: r2, preMaster: preMaster, - } + }, nil } diff --git a/vpn/keys_test.go b/vpn/keys_test.go index 4515458c0eb5694715e63afadc92a520a6431cf0..a7aa8585c0884fda8d60a063453e99ee304b2850 100644 --- a/vpn/keys_test.go +++ b/vpn/keys_test.go @@ -19,6 +20,7 @@ } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + "testing" t.Errorf("newKeySource() = %v, want %v", got, tt.want) } })