* Move some stuff around in prep for a VL2 rework and identity rework.
* Mix ephemeral keys into "h"
* More topology stuff for VL2.
* Simplify key queue, fix macOS issues with bindings, and no need to cache PSK forever.
* Some more merge fixes.
* A bunch of ZSSP cleanup and optimization. Runs a bit faster now.
* Remove some unused util code.
* scatter gather stuff
* The scatter/gather algorithm works.
* Make OpenSSL init get called automatically at process launch, and some more scatter gather work.
* added support for cloning on EcKey
* Scatter/gather, move SG into VL2 since that is where it will be used, add an array chunker to utils::memory
* Simplify some Rust generic madness.
* docs
* Some cleanup and reorg.
* Bring back AES-GMAC-SIV tests.
* Turns out a Mutex is not really any slower...
---------
Co-authored-by: mamoniot <mamoniot@protonmail.com>
* Move some stuff around in prep for a VL2 rework and identity rework.
* Mix ephemeral keys into "h"
* More topology stuff for VL2.
* Simplify key queue, fix macOS issues with bindings, and no need to cache PSK forever.
* Some more merge fixes.
* A bunch of ZSSP cleanup and optimization. Runs a bit faster now.
Tetanus noise xk (#1881)
* Noise XK work in progress.
* A whole lot more Noise_XK work... exchange almost done.
* Delete a bunch of commented out old Noise_IK code.
* Add back in send() and a few other things to Noise_XK ZSSP.
* Some p384 experiment in attic
* A ton of ZSSP work, and put MPL on ZSSP.
* updated kbkdf512 to use the modern nist standard
* Parameterize KBKDF on resulting output key size the way NIST likes.
* updated variable comment
* Make the label a const parameter on kbkdf.
* updated variable comment
* Add MPL to utils and other stuff.
* layout tweak
* Some more ZSSP work and a VDF we may use.
* warning removal
* More ZSSP work, add benchmarks for mimcvdf.
* Almost ready to test...
* Build fix.
* Add automatic retransmission in the earliest stages of session init.
* Just about ready to test... wow.
* It opens a session.
* ZSSP basically works...
---------
Co-authored-by: mamoniot <mamoniot@protonmail.com>
Warning removal.
remove old docs
Remove old tests from ZSSP, new test in main() can also be made into a unit test in the future.
Add key_info() to get key information.
Rekeying is now tested and works.
Show key fingerprint.
Factor out memory:: stuff, does not appear to have any real performance benefit.
Rework defragmentation, and it now tolerates very poor link quality pretty well.
Circuit breaker for incoming defrag queue, and ZSSP now works very well even under very poor network conditions.
Format tweak.
ZSSP API updates.
Just a bit of final ZSSP cleanup before moving to another thing.
* Noise XK work in progress.
* A whole lot more Noise_XK work... exchange almost done.
* Delete a bunch of commented out old Noise_IK code.
* Add back in send() and a few other things to Noise_XK ZSSP.
* Some p384 experiment in attic
* A ton of ZSSP work, and put MPL on ZSSP.
* updated kbkdf512 to use the modern nist standard
* Parameterize KBKDF on resulting output key size the way NIST likes.
* updated variable comment
* Make the label a const parameter on kbkdf.
* updated variable comment
* Add MPL to utils and other stuff.
* layout tweak
* Some more ZSSP work and a VDF we may use.
* warning removal
* More ZSSP work, add benchmarks for mimcvdf.
* Almost ready to test...
* Build fix.
* Add automatic retransmission in the earliest stages of session init.
* Just about ready to test... wow.
* It opens a session.
* ZSSP basically works...
---------
Co-authored-by: mamoniot <mamoniot@protonmail.com>
- Went back to a single session counter instead of two counter states
- Went to a full 64-bit counter in the header as recommended by Noise, turns
out there is a good reason. It simplifies everything.
- Implemented Monica's simpler stateless counter window algorithm, but
also only one on the whole session.
- Simplified some counter logic generally.
- Header check codes are temporarily gone, coming back in a different form.
This is being committed "on top" of what was there instead of reverting the old
commits to preserve the history.