Commit graph

39 commits

Author SHA1 Message Date
Adam Ierymenko
d0446a965e
Fixes to crypto on macOS, a lot of cleanup, and work on full state replication for V2 VL2 (#1911)
* 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>
2023-03-14 15:29:20 -04:00
Sean OMeara
0c91b75bbd silence compiler warnings about _unused_variables (#1852)
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.
2023-03-03 13:47:22 -05:00
Adam Ierymenko
181eb8ac34 cleanup 2023-01-04 11:09:21 -05:00
Adam Ierymenko
ec600f994a Add both Valid and Verified typestates. 2023-01-03 17:58:28 -05:00
Adam Ierymenko
382688d251 Generalize typestates, make verified valid because its more correct for Identity. 2023-01-03 15:24:46 -05:00
Adam Ierymenko
7dabeb9595 cleanup 2023-01-03 14:51:39 -05:00
Adam Ierymenko
bc02651613 Some simplification. 2023-01-03 13:36:53 -05:00
Adam Ierymenko
9430d336f9 cleanup 2023-01-03 12:46:04 -05:00
Adam Ierymenko
9c82aa2b29 More trait simplification. 2023-01-03 10:18:47 -05:00
Adam Ierymenko
d9e68701b6 A bit more simplification of generics in VL1 and VL1Service. 2023-01-02 14:49:37 -05:00
Adam Ierymenko
2fcc9e63c6 Some renaming and generic simplification. 2022-12-31 16:03:02 -05:00
Adam Ierymenko
234e0ea0ee Renaming... 2022-12-21 20:00:15 -05:00
Brenton Bostick
17d09ee258
fix typos (#1810) 2022-12-13 11:10:27 +01:00
Adam Ierymenko
a4fd7318c2 build fix 2022-12-05 17:02:58 -05:00
Adam Ierymenko
7c2e0b8507 Windows fixes... not quite ported yet but almost there. 2022-12-05 16:58:33 -05:00
Adam Ierymenko
19d973cfd4 (1) Implement typestate Verified for identity, (2) FileDatabase in controller now works. 2022-11-16 21:41:08 -05:00
Adam Ierymenko
ee4ce6a8ef
Tons of work: reorg traits to simplify, implement multicast authority stuff, other works in progress. 2022-11-03 11:11:04 -04:00
Adam Ierymenko
127e27326a
cleanup 2022-10-25 08:40:24 -04:00
Adam Ierymenko
bc5861c539
Make database in controller dynamic to prep for having multiple implementations. 2022-10-23 20:13:03 -04:00
Adam Ierymenko
cf7f0b06df
Use a clever little hack to eliminate a great deal of cascading template sprawl from the core. 2022-10-21 16:50:07 -07:00
Adam Ierymenko
3e713360e3
Ease up some template restrictions and wire up some more stuff in controller. 2022-10-13 13:45:07 -04:00
Adam Ierymenko
5d17c37b65
Remove parking_lot since as of 1.63 Rust std::mutex is usually as good or better. 2022-09-29 15:34:03 -04:00
Adam Ierymenko
b5e1c4f546
A bit more reorg. 2022-09-29 09:45:54 -04:00
Adam Ierymenko
459b195fa4
Reorg some stuff and skeleton of separate controller binary 2022-09-28 14:08:29 -04:00
Adam Ierymenko
a6f09dbec4
Move datadir and make it generic. 2022-09-28 12:04:55 -04:00
Adam Ierymenko
eaacb26187
Finish WHOIS, blacklist bridge on macOS because the OS has a ton of weird bridge devices, and fix a mutex problem. 2022-09-23 16:43:00 -04:00
Adam Ierymenko
8592cd59e2
Controller stuff and implementing WHOIS 2022-09-23 09:56:38 -04:00
Adam Ierymenko
373adb028d
Controller work and basic in-filesystem DB, slightly different from v1 version and supporting live editing of the network in the filesystem. 2022-09-22 17:29:10 -04:00
Adam Ierymenko
be000c2046
Centralize import of tokio to control its version and features. 2022-09-22 09:30:37 -04:00
Adam Ierymenko
1828163219
cleanup 2022-09-21 18:29:44 -04:00
Adam Ierymenko
d66f19a2f2
Now works without async in the core or the service. Can still be used in the controller. 2022-09-21 18:27:55 -04:00
Adam Ierymenko
768ec6e710
Tons more work: (1) remove async again from the core, (2) controller stuff, (3) retrofit other stuff to handle non-async core. 2022-09-21 16:43:47 -04:00
Adam Ierymenko
7ec46540fa
A ton more reorg work and controller work. 2022-09-20 12:10:05 -04:00
Adam Ierymenko
0c8693fade
debug code removal 2022-09-16 17:02:38 -04:00
Adam Ierymenko
aafac271f5
Says hello to a root again! 2022-09-16 17:02:21 -04:00
Adam Ierymenko
2017dcf746
Bring service back to simple working state to end-to-end test. 2022-09-16 15:27:24 -04:00
Adam Ierymenko
0552d587a0
Get things building again 2022-09-16 14:16:13 -04:00
Adam Ierymenko
b4c74ce7bb
More work on VL1 service 2022-09-16 13:50:39 -04:00
Adam Ierymenko
b4edad6bfb
Work in progress: massive reorg to separate concerns a bit more and allow stand-alone controllers etc. 2022-09-15 13:57:21 -04:00