From 0c6f6e443c37addce07cb3d1cd337c62a234e90d Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Thu, 17 Sep 2015 20:42:10 +0300 Subject: [PATCH] Rename NoiseEnable field for simplicity Signed-off-by: Sergey Matveev --- src/govpn/cmd/govpn-client/main.go | 12 ++++----- src/govpn/conf.go | 42 ++++++++++++++++++++++++++++++ src/govpn/handshake.go | 8 +++--- src/govpn/identify.go | 11 -------- src/govpn/peer.go | 2 +- 5 files changed, 53 insertions(+), 22 deletions(-) create mode 100644 src/govpn/conf.go diff --git a/src/govpn/cmd/govpn-client/main.go b/src/govpn/cmd/govpn-client/main.go index f859081..467bec6 100644 --- a/src/govpn/cmd/govpn-client/main.go +++ b/src/govpn/cmd/govpn-client/main.go @@ -74,12 +74,12 @@ func main() { pub, priv := govpn.NewVerifier(id, govpn.StringFromFile(*keyPath)) conf = &govpn.PeerConf{ - Id: id, - Timeout: time.Second * time.Duration(timeout), - NoiseEnable: *noisy, - CPR: *cpr, - DSAPub: pub, - DSAPriv: priv, + Id: id, + Timeout: time.Second * time.Duration(timeout), + Noise: *noisy, + CPR: *cpr, + DSAPub: pub, + DSAPriv: priv, } govpn.PeersInitDummy(id, conf) log.Println(govpn.VersionGet()) diff --git a/src/govpn/conf.go b/src/govpn/conf.go new file mode 100644 index 0000000..0eff590 --- /dev/null +++ b/src/govpn/conf.go @@ -0,0 +1,42 @@ +/* +GoVPN -- simple secure free software virtual private network daemon +Copyright (C) 2014-2015 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 ( + "time" + + "github.com/agl/ed25519" +) + +type PeerConf struct { + Id *PeerId `json:"-"` + Name string `json:"name"` + Up string `json:"up"` + Down string `json:"down"` + TimeoutInt int `json:"timeout"` + Timeout time.Duration `json:"-"` + Noise bool `json:"noise"` + CPR int `json:"cpr"` + Verifier string `json:"verifier"` + + // This is passphrase verifier + DSAPub *[ed25519.PublicKeySize]byte `json:"-"` + // This field exists only on client's side + DSAPriv *[ed25519.PrivateKeySize]byte `json:"-"` +} diff --git a/src/govpn/handshake.go b/src/govpn/handshake.go index 1c7c43d..0aa65bd 100644 --- a/src/govpn/handshake.go +++ b/src/govpn/handshake.go @@ -171,7 +171,7 @@ func HandshakeStart(addr string, conn io.Writer, conf *PeerConf) *Handshake { log.Fatalln("Error reading random for nonce:", err) } var enc []byte - if conf.NoiseEnable { + if conf.Noise { enc = make([]byte, MTU-xtea.BlockSize-RSize) } else { enc = make([]byte, 32) @@ -224,7 +224,7 @@ func (h *Handshake) Server(data []byte) *Peer { log.Fatalln("Error reading random for S:", err) } var encRs []byte - if h.Conf.NoiseEnable { + if h.Conf.Noise { encRs = make([]byte, MTU-len(encPub)-xtea.BlockSize) } else { encRs = make([]byte, RSize+SSize) @@ -259,7 +259,7 @@ func (h *Handshake) Server(data []byte) *Peer { // Send final answer to client var enc []byte - if h.Conf.NoiseEnable { + if h.Conf.Noise { enc = make([]byte, MTU-xtea.BlockSize) } else { enc = make([]byte, RSize) @@ -318,7 +318,7 @@ func (h *Handshake) Client(data []byte) *Peer { sign := ed25519.Sign(h.Conf.DSAPriv, h.key[:]) var enc []byte - if h.Conf.NoiseEnable { + if h.Conf.Noise { enc = make([]byte, MTU-xtea.BlockSize) } else { enc = make([]byte, RSize+RSize+SSize+ed25519.SignatureSize) diff --git a/src/govpn/identify.go b/src/govpn/identify.go index c7675b6..3f506ec 100644 --- a/src/govpn/identify.go +++ b/src/govpn/identify.go @@ -56,17 +56,6 @@ func (id PeerId) MarshalJSON() ([]byte, error) { return []byte(`"` + result + `"`), nil } -type PeerConf struct { - Id *PeerId - Timeout time.Duration - NoiseEnable bool - CPR int - // This is passphrase verifier - DSAPub *[ed25519.PublicKeySize]byte - // This field exists only in dummy configuration on client's side - DSAPriv *[ed25519.PrivateKeySize]byte -} - type cipherCache map[PeerId]*xtea.Cipher var ( diff --git a/src/govpn/peer.go b/src/govpn/peer.go index 7219248..7366ffd 100644 --- a/src/govpn/peer.go +++ b/src/govpn/peer.go @@ -123,7 +123,7 @@ func newPeer(isClient bool, addr string, conn io.Writer, conf *PeerConf, key *[S timeout := conf.Timeout cprCycle := cprCycleCalculate(conf.CPR) - noiseEnable := conf.NoiseEnable + noiseEnable := conf.Noise if conf.CPR > 0 { noiseEnable = true timeout = cprCycle -- 2.44.0