From d99a05b2614dc16d4b32a6bc2f6997f60cc3850c Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 5 Jan 2016 23:12:40 +0300 Subject: [PATCH] Simple handshake passing tests Signed-off-by: Sergey Matveev --- src/govpn/handshake_test.go | 79 +++++++++++++++++++++++++++++++++++++ src/govpn/peer_test.go | 10 ++--- 2 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 src/govpn/handshake_test.go diff --git a/src/govpn/handshake_test.go b/src/govpn/handshake_test.go new file mode 100644 index 0000000..02c592b --- /dev/null +++ b/src/govpn/handshake_test.go @@ -0,0 +1,79 @@ +/* +GoVPN -- simple secure free software virtual private network daemon +Copyright (C) 2014-2016 Sergey Matveev + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +package govpn + +import ( + "testing" +) + +func TestHandshakeSymmetric(t *testing.T) { + // initial values are taken from peer_test.go's init() + v := VerifierNew(DefaultM, DefaultT, DefaultP, &peerId) + conf.Verifier = v + conf.DSAPriv = v.PasswordApply("does not matter") + hsS := NewHandshake("server", Dummy{&ciphertext}, conf) + hsC := HandshakeStart("client", Dummy{&ciphertext}, conf) + hsS.Server(ciphertext) + hsC.Client(ciphertext) + if hsS.Server(ciphertext) == nil { + t.Fail() + } + if hsC.Client(ciphertext) == nil { + t.Fail() + } +} + +func TestHandshakeNoiseSymmetric(t *testing.T) { + // initial values are taken from peer_test.go's init() + v := VerifierNew(DefaultM, DefaultT, DefaultP, &peerId) + conf.Verifier = v + conf.DSAPriv = v.PasswordApply("does not matter") + conf.Noise = true + hsS := NewHandshake("server", Dummy{&ciphertext}, conf) + hsC := HandshakeStart("client", Dummy{&ciphertext}, conf) + hsS.Server(ciphertext) + hsC.Client(ciphertext) + if hsS.Server(ciphertext) == nil { + t.Fail() + } + if hsC.Client(ciphertext) == nil { + t.Fail() + } + conf.Noise = false +} +func TestHandshakeEnclessSymmetric(t *testing.T) { + // initial values are taken from peer_test.go's init() + v := VerifierNew(DefaultM, DefaultT, DefaultP, &peerId) + conf.Verifier = v + conf.DSAPriv = v.PasswordApply("does not matter") + conf.EncLess = true + conf.Noise = true + hsS := NewHandshake("server", Dummy{&ciphertext}, conf) + hsC := HandshakeStart("client", Dummy{&ciphertext}, conf) + hsS.Server(ciphertext) + hsC.Client(ciphertext) + if hsS.Server(ciphertext) == nil { + t.Fail() + } + if hsC.Client(ciphertext) == nil { + t.Fail() + } + conf.EncLess = false + conf.Noise = false +} diff --git a/src/govpn/peer_test.go b/src/govpn/peer_test.go index d052608..09a0465 100644 --- a/src/govpn/peer_test.go +++ b/src/govpn/peer_test.go @@ -28,7 +28,7 @@ var ( peer *Peer plaintext []byte ciphertext []byte - peerId *PeerId + peerId PeerId conf *PeerConf ) @@ -45,7 +45,7 @@ func (d Dummy) Write(b []byte) (int, error) { func init() { id := new([IDSize]byte) - peerId := PeerId(*id) + peerId = PeerId(*id) conf = &PeerConf{ Id: &peerId, MTU: MTUDefault, @@ -55,7 +55,7 @@ func init() { plaintext = make([]byte, 789) } -func TestSymmetric(t *testing.T) { +func TestTransportSymmetric(t *testing.T) { peerd := newPeer(true, "foo", Dummy{nil}, conf, new([SSize]byte)) f := func(payload []byte) bool { if len(payload) == 0 { @@ -69,7 +69,7 @@ func TestSymmetric(t *testing.T) { } } -func TestSymmetricNoise(t *testing.T) { +func TestTransportSymmetricNoise(t *testing.T) { peerd := newPeer(true, "foo", Dummy{nil}, conf, new([SSize]byte)) peer.NoiseEnable = true peerd.NoiseEnable = true @@ -86,7 +86,7 @@ func TestSymmetricNoise(t *testing.T) { peer.NoiseEnable = true } -func TestSymmetricEncLess(t *testing.T) { +func TestTransportSymmetricEncLess(t *testing.T) { peerd := newPeer(true, "foo", Dummy{nil}, conf, new([SSize]byte)) peer.EncLess = true peer.NoiseEnable = true -- 2.44.0