mirror of https://gogs.blitter.com/RLabs/xs
Added max bounds for chaff, rekey intervals and random jitter for rekey interval
This commit is contained in:
parent
faf8769ac4
commit
6212119621
2
Makefile
2
Makefile
|
@ -1,4 +1,4 @@
|
|||
VERSION := 0.9.7
|
||||
VERSION := 0.9.8
|
||||
.PHONY: lint vis clean common client server passwd\
|
||||
subpkgs install uninstall reinstall scc
|
||||
|
||||
|
|
|
@ -136,5 +136,7 @@ type CSHmacAlg uint32
|
|||
// Some bounds-checking consts
|
||||
const (
|
||||
REKEY_SECS_MIN = 1
|
||||
REKEY_SECS_MAX = 28800 // 8 hours
|
||||
CHAFF_FREQ_MSECS_MIN = 1
|
||||
CHAFF_FREQ_MSECS_MAX = 300000 // 5 minutes
|
||||
)
|
||||
|
|
27
xsnet/net.go
27
xsnet/net.go
|
@ -1600,6 +1600,16 @@ func (hc *Conn) ShutdownChaff() {
|
|||
}
|
||||
|
||||
func (hc *Conn) SetupChaff(msecsMin uint, msecsMax uint, szMax uint) {
|
||||
// Enforce bounds on chaff frequency and pkt size
|
||||
hc.Lock()
|
||||
if hc.chaff.msecsMin < CHAFF_FREQ_MSECS_MIN {
|
||||
hc.chaff.msecsMin = CHAFF_FREQ_MSECS_MIN
|
||||
}
|
||||
if hc.chaff.msecsMax > CHAFF_FREQ_MSECS_MAX {
|
||||
hc.chaff.msecsMax = CHAFF_FREQ_MSECS_MAX
|
||||
}
|
||||
hc.Unlock()
|
||||
|
||||
hc.chaff.msecsMin = msecsMin //move these to params of chaffHelper() ?
|
||||
hc.chaff.msecsMax = msecsMax
|
||||
hc.chaff.szMax = szMax
|
||||
|
@ -1615,6 +1625,9 @@ func (hc *Conn) RekeyHelper(intervalSecs uint) {
|
|||
if intervalSecs < REKEY_SECS_MIN {
|
||||
intervalSecs = REKEY_SECS_MIN
|
||||
}
|
||||
if intervalSecs > REKEY_SECS_MAX {
|
||||
intervalSecs = REKEY_SECS_MAX
|
||||
}
|
||||
|
||||
go func() {
|
||||
hc.Lock()
|
||||
|
@ -1625,7 +1638,14 @@ func (hc *Conn) RekeyHelper(intervalSecs uint) {
|
|||
hc.Lock()
|
||||
rekey := hc.rekey
|
||||
hc.Unlock()
|
||||
|
||||
if rekey != 0 {
|
||||
jitter := rand.Intn(int(rekey)) / 4
|
||||
rekey = rekey - uint(jitter)
|
||||
if rekey < 1 {
|
||||
rekey = 1
|
||||
}
|
||||
|
||||
//logger.LogDebug(fmt.Sprintf("[rekeyHelper Loop]\n"))
|
||||
time.Sleep(time.Duration(rekey) * time.Second)
|
||||
|
||||
|
@ -1656,13 +1676,6 @@ func (hc *Conn) RekeyHelper(intervalSecs uint) {
|
|||
|
||||
// Helper routine to spawn a chaffing goroutine for each Conn
|
||||
func (hc *Conn) chaffHelper() {
|
||||
// Enforce bounds on chaff frequency and pkt size
|
||||
hc.Lock()
|
||||
if hc.chaff.msecsMin < CHAFF_FREQ_MSECS_MIN {
|
||||
hc.chaff.msecsMin = CHAFF_FREQ_MSECS_MIN
|
||||
}
|
||||
hc.Unlock()
|
||||
|
||||
go func() {
|
||||
var nextDuration int
|
||||
for {
|
||||
|
|
Loading…
Reference in New Issue