Commit graph

6338 commits

Author SHA1 Message Date
Adam Ierymenko
773531f6e7 Add missing file. 2023-03-21 15:36:30 -04:00
Adam Ierymenko
fcadb343a3 Almost done refactoring for long form addresses, etc. 2023-03-21 15:29:22 -04:00
Adam Ierymenko
3f047bc8dc A whole heap of changes including: addresses are now 48 bits, base64 is gone, and rewrote Identity for simplification. 2023-03-17 22:13:32 -04:00
Adam Ierymenko
c4cb7c4429 Turns out a Mutex is not really any slower... 2023-03-14 15:22:37 -04:00
Adam Ierymenko
d81db5caa9 Bring back AES-GMAC-SIV tests. 2023-03-14 15:16:23 -04:00
Adam Ierymenko
36b7986a57 Some cleanup and reorg. 2023-03-14 15:00:29 -04:00
Adam Ierymenko
7c561d544d docs 2023-03-14 13:52:37 -04:00
Adam Ierymenko
f0158ee8ae Simplify some Rust generic madness. 2023-03-14 13:30:35 -04:00
Adam Ierymenko
dd9f1cffe5 Scatter/gather, move SG into VL2 since that is where it will be used, add an array chunker to utils::memory 2023-03-14 10:27:16 -04:00
mamoniot
b3bd64504b
added support for cloning on EcKey 2023-03-13 16:12:57 -04:00
Adam Ierymenko
e64fab8b9d Make OpenSSL init get called automatically at process launch, and some more scatter gather work. 2023-03-13 15:20:21 -04:00
Adam Ierymenko
1afbc73ff8 The scatter/gather algorithm works. 2023-03-13 14:46:01 -04:00
Adam Ierymenko
cd6b9fa616 Merge branch 'tetanus' into tetanus-adam 2023-03-13 13:21:52 -04:00
Monica Moniot
faf4c9a5b1
implemented noise_KKpsk0 (#1909)
* implemented noise_KKpsk0

* used cargo fmt
2023-03-13 13:21:30 -04:00
Adam Ierymenko
6ae7ebc186 scatter gather stuff 2023-03-13 13:21:13 -04:00
Adam Ierymenko
99ede32c96 Remove some unused util code. 2023-03-10 17:59:27 -05:00
Adam Ierymenko
98e427d21b Merge branch 'tetanus' into tetanus-adam 2023-03-10 17:04:44 -05:00
Adam Ierymenko
f66a2a7ef9
Tetanus adam (#1906)
* 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.
2023-03-10 17:03:22 -05:00
Adam Ierymenko
f83bf41427 A bunch of ZSSP cleanup and optimization. Runs a bit faster now. 2023-03-10 16:58:38 -05:00
Adam Ierymenko
7072338037 Merge branch 'tetanus' into tetanus-vl2 2023-03-10 11:07:06 -05:00
Adam Ierymenko
8dfa991cef Some more merge fixes. 2023-03-10 11:03:09 -05:00
Adam Ierymenko
4192da956b Merge and resolve Monica`s fixes. 2023-03-10 09:52:51 -05:00
Adam Ierymenko
a69199607c Simplify key queue, fix macOS issues with bindings, and no need to cache PSK forever. 2023-03-10 09:39:47 -05:00
Monica Moniot
f2e2944658
tetanus-fixes (#1903) 2023-03-10 08:35:10 -05:00
Sean OMeara
d3baf083f1
removing mips64le (#1900) 2023-03-10 10:03:07 +01:00
Sean OMeara
4692193ec4
cargo fmt
* using mips64le
* cargo fmt
2023-03-10 09:40:26 +01:00
Sean OMeara
2cbc15c5ef
removing slower platforms from drone 2023-03-10 07:29:50 +01:00
Sean OMeara
192ee682ff
removing slower platforms from drone 2023-03-10 07:27:42 +01:00
monica
eb0425a28f
fixed multithreading bug 2023-03-10 00:22:53 -05:00
monica
285aab8080
improved pool mutex logic 2023-03-09 23:44:30 -05:00
monica
b3053f70e7
improved aes get 2023-03-09 23:24:43 -05:00
Adam Ierymenko
d170d91b8e Fix a locking issue in ZSSP and use hmac_sha512_secret everywhere, also clean up something in macOS AES. 2023-03-09 19:00:03 -05:00
Monica Moniot
164c7bf561
Tetanus custom bindings with macos and threadsafety bugfix (#1898)
* first commit

* cleared errors

* added init

* adding macos

* finished import

* fixed macos aes

* fixed lib

* improved openssl integration

* fixed multithreading bug

* broke something

* fixed bug

* got compilation working

* fixed threadsafety issue
2023-03-09 18:38:58 -05:00
Adam Ierymenko
86ffb2861b More topology stuff for VL2. 2023-03-09 18:38:37 -05:00
monica
f906c9e0e1
added more specific NIST key usage labels 2023-03-08 16:57:29 -05:00
Adam Ierymenko
c05039f30d Merge branch 'tetanus' into tetanus-vl2 2023-03-08 16:25:16 -05:00
Adam Ierymenko
ccb5ff8e6d Add PSK to h as well. 2023-03-08 16:00:23 -05:00
Adam Ierymenko
5fbaf28c12 Mix ephemeral keys into "h" 2023-03-08 15:51:56 -05:00
Adam Ierymenko
b8dad35073 Mix ephemeral keys into "h" 2023-03-08 15:51:34 -05:00
Adam Ierymenko
5329910a56 Merge branch 'tetanus' into tetanus-vl2 2023-03-08 15:34:00 -05:00
Adam Ierymenko
cd6d8d36b0 Simplify some packet building code. 2023-03-08 15:03:27 -05:00
Adam Ierymenko
94b3e208e7 Ensure that the 'h' mechanism from Noise authenticates part one of the final packet in part two's MAC. 2023-03-08 14:57:32 -05:00
Adam Ierymenko
1c5de7473d Implement noise "h" 2023-03-08 14:22:47 -05:00
Adam Ierymenko
757cc88abc Make ZSSP use just GCM to simplify, and change final ACK to auth and encrypt public blob separately from meta-data. 2023-03-07 13:03:48 -05:00
Adam Ierymenko
e66477c168 docs 2023-03-06 10:53:41 -05:00
Adam Ierymenko
6f9aedb747 Move some stuff around in prep for a VL2 rework and identity rework. 2023-03-06 10:13:49 -05:00
Adam Ierymenko
c4beedcd73 Merge branch 'tetanus' of http://git.int.zerotier.com/zerotier/ZeroTierOne into tetanus 2023-03-03 13:50:29 -05: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
3f6c7f27a1 Just a bit of final ZSSP cleanup before moving to another thing. 2023-03-03 13:46:58 -05:00
Adam Ierymenko
4360e0b487 ZSSP API updates. 2023-03-03 11:08:12 -05:00