A secure remote client/server terminal, written in Golang. Intended as a test-bed for experimental key exchanges and symmetric session crypto. Integrated traffic chaffing.
Go to file
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
demo Bit of cleanup in hkex.Read(),Write() and server.go read bufsize to 512 2018-01-11 09:13:18 -08:00
README.md Prototype README.md with theory of operation 2018-01-06 15:41:23 +00:00
herradurakex.go Split core KEx and net support code 2018-01-08 19:16:55 -08:00
hkexchan.go Hoorah, got basic crypto working over hkex Conn 2018-01-10 22:50:13 -08:00
hkexnet.go Bit of cleanup in hkex.Read(),Write() and server.go read bufsize to 512 2018-01-11 09:13:18 -08:00

README.md

This is an implementation of the 'HerraduraKEx' key exchange algorithm in golang. See github.com/Caume/HerraduraKEx

package herradurakex is a simple golang library to manage key exchanges using the algorithm and (TODO) wraps/extends golang.org/pkg/net/, Listener interface, Dial/Accept methods by providing a HKexConn built on top of the vanilla Conn.

Theory:

  1. Build a standard pkg/net/ Conn c
  2. Build a HKexConn passing in Conn hc (HKexConn implements io.Reader,io.Writer)s
  3. Dial/Listen on hc (it will do the KEx and store session key, negotiate crypto alg.)
  4. Call any pkg/net ops as usual using HKexConn

? -rlm 2018-01-06