From 825429003ba66338d7971eac5a69e08611397838 Mon Sep 17 00:00:00 2001 From: Russ Magee Date: Wed, 3 Jul 2019 09:50:37 -0700 Subject: [PATCH] Added enforcement of min/max vals for chaff freq, bytesize Made HerraduraKEx 512 default KEx (was HerraduraKEx 256) Signed-off-by: Russ Magee --- hkexsh/hkexsh.go | 13 ++++++++++++- hkexshd/hkexshd.go | 11 +++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/hkexsh/hkexsh.go b/hkexsh/hkexsh.go index 509b341..72d2707 100755 --- a/hkexsh/hkexsh.go +++ b/hkexsh/hkexsh.go @@ -620,7 +620,7 @@ func main() { flag.BoolVar(&dbg, "d", false, "debug logging") flag.StringVar(&cipherAlg, "c", "C_AES_256", "`cipher` [\"C_AES_256\" | \"C_TWOFISH_128\" | \"C_BLOWFISH_64\" | \"C_CRYPTMT1\"]") flag.StringVar(&hmacAlg, "m", "H_SHA256", "`hmac` [\"H_SHA256\" | \"H_SHA512\"]") - flag.StringVar(&kexAlg, "k", "KEX_HERRADURA256", "`kex` [\"KEX_HERRADURA{256/512/1024/2048}\" | \"KEX_KYBER{512/768/1024}\" | \"KEX_NEWHOPE\" | \"KEX_NEWHOPE_SIMPLE\"]") + flag.StringVar(&kexAlg, "k", "KEX_HERRADURA512", "`kex` [\"KEX_HERRADURA{256/512/1024/2048}\" | \"KEX_KYBER{512/768/1024}\" | \"KEX_NEWHOPE\" | \"KEX_NEWHOPE_SIMPLE\"]") flag.UintVar(&port, "p", 2000, "`port`") //flag.StringVar(&authCookie, "a", "", "auth cookie") flag.BoolVar(&chaffEnabled, "e", true, "enable chaff pkts") @@ -764,6 +764,17 @@ func main() { } } + // Enforce some sane min/max vals on chaff flags + if chaffFreqMin < 2 { + chaffFreqMin = 2 + } + if chaffFreqMax == 0 { + chaffFreqMax = chaffFreqMin + 1 + } + if chaffBytesMax == 0 || chaffBytesMax > 4096 { + chaffBytesMax = 64 + } + if shellMode { // We must make the decision about interactivity before Dial() // as it affects chaffing behaviour. 20180805 diff --git a/hkexshd/hkexshd.go b/hkexshd/hkexshd.go index 4ee07d8..953ec24 100755 --- a/hkexshd/hkexshd.go +++ b/hkexshd/hkexshd.go @@ -406,6 +406,17 @@ func main() { } } + // Enforce some sane min/max vals on chaff flags + if chaffFreqMin < 2 { + chaffFreqMin = 2 + } + if chaffFreqMax == 0 { + chaffFreqMax = chaffFreqMin + 1 + } + if chaffBytesMax == 0 || chaffBytesMax > 4096 { + chaffBytesMax = 64 + } + Log, _ = logger.New(logger.LOG_DAEMON|logger.LOG_DEBUG|logger.LOG_NOTICE|logger.LOG_ERR, "hkexshd") // nolint: gosec hkexnet.Init(dbg, "hkexshd", logger.LOG_DAEMON|logger.LOG_DEBUG|logger.LOG_NOTICE|logger.LOG_ERR) if dbg {