Commit Graph

46 Commits

Author SHA1 Message Date
Russ Magee bd261a32e9 reorg to separate core KEx and net layer from app 2018-07-04 21:21:23 -07:00
Russ Magee 216bfa3326 Exit status of remote commands now reflect in client exit 2018-06-29 19:23:11 -07:00
Russ Magee 22da88af7d Attempts to handle disconnects better.. TODO: torture tests and implement exit status for -x commands 2018-06-26 20:14:43 -07:00
Russ Magee a1f4e0342a Added chaff cmdline options to client & server 2018-05-06 17:41:09 -07:00
Russ Magee 64e511c3c5 Moved mutex to front of Conn struct 2018-05-04 23:39:19 -07:00
Russ Magee 70448dda08 No need for custom hkexsh.Copy() 2018-05-04 23:31:06 -07:00
Russ Magee c5498642fc Got client hangup working again. Security scrub auth vars. 2018-05-04 23:25:26 -07:00
Russ Magee 925e83bbba Added comment wrt. mutex lock scope in WritePacket 2018-05-04 14:40:06 -07:00
Russ Magee a49a5d4cc2 Locking in WritePacket() apparently working, client and server-side chaffing functional 2018-05-03 23:53:47 -07:00
Russ Magee 6d606bbbd9 Moved mutex into hkexsh.Conn (hkexnet) 2018-05-02 13:22:37 -07:00
Russ Magee 4d85236d16 Chaffing slight improvements (rand size, timing). TODO: Move into hkexsh.Conn 2018-05-02 12:28:56 -07:00
Russ Magee b8a07e9648 Chaff packets w/sync.Mutex to allow chaff & main goroutine to both input to server.
TODO: smart chaff, mutating or mimicking recent input.
2018-05-01 02:39:45 -07:00
Russ Magee 8162707ffa - got term resizing working (client SIGWINCH signals -> server_pty(rows,cols) 2018-04-28 19:28:37 -07:00
Russ Magee 50f0433579 -Added error checking for all stages of hkex.Conn.Accept() and GetStream()
-Server will log such errors without panic/exit
-Const added but not yet used for 'chaff' packets
2018-04-28 16:05:33 -07:00
Russ Magee c56d4d9ad9 hmac tampering indication implemented -- local and remote-side 2018-04-15 13:29:06 -07:00
Russ Magee b45784e07b Minimal hmac channel verification w/close on tampering 2018-04-15 12:58:24 -07:00
Russ Magee 351f58b6c5 misc. cleanup, LICENSE.{gpl,mit} updates 2018-04-07 13:04:10 -07:00
Russ Magee 5da70447b0 MSYS+mintty support; pkg renaming to hkexsh 2018-04-04 15:43:27 -07:00
Russ Magee dd746cf343 Fixed handling of -x non-interactive command runs and hangup of interactive session 2018-03-26 21:58:42 -07:00
Russ Magee cb0ce956b9 Server-side client hangup working; TODO - client-side handling of post-exit EOF (broken pipe) 2018-03-25 23:00:37 -07:00
Russ Magee 65b7af8063 Excessive debugging off; client logout (exit) causing panic on server-side, debug TBD 2018-03-25 21:47:38 -07:00
Russ Magee 5ea75e456d De-packetizing-rebuffering of Read() w/HMAC working, yay 2018-03-25 19:59:07 -07:00
Russ Magee 3f5db06f16 De-packetizing-rebuffering of Read() w/HMAC working, yay 2018-03-25 19:58:04 -07:00
Russ Magee c0fa2bcdf9 hmac usage commented out, 2nd attempt to re-add usage w/paylaod len 2018-03-25 10:40:23 -07:00
Russ Magee e14ccbe366 Length calc but not xmit -- grouped Read() likely the issue to handle 2018-02-16 22:12:27 -08:00
Russ Magee 744730ae23 HMAC calc w/no xmit or verification, working..? 2018-02-16 19:25:11 -08:00
Russ Magee d465c1ee5b Initial experiments: HMAC on stream 2018-02-16 18:46:29 -08:00
Russ Magee 6ea206fbc2 Merge of public work on github.com/Russtopia/hkexsh repo 2018-02-16 18:43:37 -08:00
Russ Magee 2b44c87815 Partial fixes to client login env; Added missing Conn.Listener interface methods to hkex.Conn.Listener 2018-01-26 16:15:39 -08:00
Russ Magee e3842e4219 Removed channel-based server loop goroutine, solving eaten initial byte issue.
Made receivers on hkex.Conn mutators *Conn again (whoops)
TODO: Consider: padding (? probably not, XORKeyStream OFB/CBC/etc. modes prevent
constant header/crib exposure, and would add lots of complexity to Read/Write)
TODO: Add CTR, other modes
2018-01-20 21:20:49 -08:00
Russ Magee 49c589ee8d Added pty lib to give true terminal capability. raw mode/restore for client working 2018-01-18 18:57:37 -08:00
Russ Magee e8fe31f6d7 Set lots of KEx Printfs to log.Printf (and off by default). Hacky non=tty shell works! 2018-01-17 21:27:00 -08:00
Russ Magee 9fb9d073ab Completed net.Conn interface implementation for hkex.Conn; some tests of Op protocol in server 2018-01-17 16:39:01 -08:00
Russ Magee e09f052f45 Just some commented-out SetReadDeadline() experiments 2018-01-16 18:30:57 -08:00
Russ Magee 942b8865cf Start of proto kexsh tool client/server 2018-01-13 10:01:27 -08:00
Russ Magee 1817627234 -Cleaned up lib code with gometalinter.v1
-Added -h opt to demo client (hmac)
2018-01-12 22:13:01 -08:00
Russ Magee 5493921e9f -Added client -c option to pass cipher alg
-Note about blowfish iv len (lack of) bounds check in .NewOFB();
-TODO added to enforce keymat from HKex >= 2*chosen cipher blocksize
 (assuming keylen == blocksize -- might not be true for all future algs)
2018-01-11 23:01:39 -08:00
Russ Magee 9054bcb89f Dial() extensions to specify cipher/hmac alg and protocol options 2018-01-11 19:42:42 -08:00
Russ Magee 02d4d0cd50 Package documentation 2018-01-11 13:44:11 -08:00
Russ Magee d4c9a1e456 Bit of cleanup in hkex.Read(),Write() and server.go read bufsize to 512 2018-01-11 09:13:18 -08:00
Russ Magee c43b13989b Hoorah, got basic crypto working over hkex Conn 2018-01-10 22:50:13 -08:00
Russ Magee b28ca552bd Got cipher StreamReader/Writer in w/o yet using them. 2018-01-08 23:26:24 -08:00
Russ Magee 9885067a48 Added hkexchan.go w/o testing for StreamReader/StreamWriter 2018-01-08 23:08:58 -08:00
Russ Magee 3571da5703 Added concept for cipher setup -- nonworking (hkexchan.gox) 2018-01-08 20:23:19 -08:00
Russ Magee 9aecee7ba3 Split core KEx and net support code 2018-01-08 19:28:04 -08:00
Russ Magee f7a3be637b Split core KEx and net support code 2018-01-08 19:16:55 -08:00