CurveCP is a low-level protocol for streaming bytes across
the network, much like TCP. Except in a secure manner.
This is an attempt to translate the reference implementation
bootlaces tries to use adzerk.bootlaces.template/update-
dependency to update the version referenced in here.
FIXME: Take advantage of that
It was initially designed by Daniel J. Bernstein. The spec,
justification, and explanation can be found at
Not even pre-alpha. I have most of the handshake translated,
and I've been able to round-trip a single echo message without
encryption or network access, but there's still a lot to be done.
In retrospect, this probably wasn't a great
idea. A pure java implementation seems like it would have been
a much wiser choice.
But, hey, I've taken it this far. And this does give me a
higher-level perspective to really think about what's going
on, above and beyond the bit twiddling.
Although you probably don't want to actually use it yet.
[com.frereth/cp "current version"]
docker build -t frereth/curve-cp .
boot set-version javac build-jar push-release
TODO: Add option for builds that look like "real" releases with no
hashes in the version "number."
bash> boot cider-repl
then connect to nrepl over port 32767.
A lot of comments reference line numbers. Those really point
back to the reference implementation, from
Having the tweetnacl java source just copy/pasted in the middle
breaks every linter I've tried to use. It seems like that part
really needs to be published somewhere as its own library.
Then again, maybe not. Maybe that violates the entire point
behind using tweetnacl.
Copyright © 2017-2018 James Gatannah
Distributed under the Eclipse Public License either version 1.0 or (at
your option) any later version.