Adam Ierymenko
781b5eb270
Format tweak.
2023-03-03 09:49:25 -05:00
Adam Ierymenko
bbeff32bce
Circuit breaker for incoming defrag queue, and ZSSP now works very well even under very poor network conditions.
2023-03-03 09:46:23 -05:00
Adam Ierymenko
40945cf6c9
Rework defragmentation, and it now tolerates very poor link quality pretty well.
2023-03-02 19:09:31 -05:00
Adam Ierymenko
87989ac008
Factor out memory:: stuff, does not appear to have any real performance benefit.
2023-03-01 16:51:03 -05:00
Adam Ierymenko
d00cf1d534
Show key fingerprint.
2023-03-01 14:32:20 -05:00
Adam Ierymenko
8b6c9051fb
Rekeying is now tested and works.
2023-03-01 14:01:30 -05:00
Adam Ierymenko
652f7360f0
Add key_info() to get key information.
2023-03-01 09:22:10 -05:00
Adam Ierymenko
8b6088f335
Remove old tests from ZSSP, new test in main() can also be made into a unit test in the future.
2023-02-28 18:06:47 -05:00
Adam Ierymenko
97fc6b8ff2
remove old docs
2023-02-28 18:01:26 -05:00
Adam Ierymenko
aca394946c
Warning removal.
2023-02-28 18:00:44 -05:00
Adam Ierymenko
5cf99ecb1d
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>
2023-02-28 17:54:08 -05:00
Adam Ierymenko
8eedf70a1f
Fix logic to still dedup properly.
2023-01-11 20:08:27 -05:00
Adam Ierymenko
edf1fd4d69
Implement max skip-ahead for counter, which is really about filtering bad packets.
2023-01-11 20:05:35 -05:00
Adam Ierymenko
2479645341
Put key index inside the encrypted part of the header.
2023-01-11 19:54:04 -05:00
Adam Ierymenko
3db9603799
Change the header yet again to encrypt everything but the session ID and key index.
2023-01-11 19:31:58 -05:00
Adam Ierymenko
8202a831b2
Rename to be more descriptive.
2023-01-06 20:51:28 -05:00
Adam Ierymenko
d2b49130b2
Fix tests, remove some dead code, fix a bug that prevented rekey rate limiting from working.
2023-01-06 20:39:20 -05:00
Adam Ierymenko
73e6be7959
Re-implement most of what Monica originally did, but with some variations:
...
- 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.
2023-01-06 19:51:09 -05:00
Adam Ierymenko
f0351b5400
Merge branch 'tetanus' of github.com:/zerotier/ZeroTierOne into tetanus
2023-01-05 16:10:53 -05:00
Adam Ierymenko
515a08f948
(1) break out Error for readability, (2) remove NOP packet type since it is no longer useful.
2023-01-05 16:10:25 -05:00
monica
a178a23ee7
corrected comment
2023-01-04 16:43:06 -05:00
monica
392d0a2b2a
removed unnecessary boxing
2023-01-04 15:24:19 -05:00
monica
44d854e03a
added explicit lifetime for session refs
2023-01-04 15:22:44 -05:00
Adam Ierymenko
29f6699924
Merge branch 'tetanus' into replay-attack-fixes
2023-01-04 11:23:34 -05:00
monica
b85e6c3d49
fixed comment
2023-01-03 17:32:15 -05:00
monica
735f40421b
fixed multiple comments
2023-01-03 17:24:05 -05:00
monica
a2b3c780bb
updated comment
2023-01-03 16:58:21 -05:00
monica
2233f8c535
added more documentation
2023-01-03 16:55:21 -05:00
monica
046ddbaf33
renamed for consistency
2023-01-03 11:20:37 -05:00
monica
40ef370204
added missing ratcheting enforcement
2023-01-03 11:19:32 -05:00
monica
b47ef35321
removed redundant state
2023-01-03 11:14:11 -05:00
monica
cbae1d8f4c
restructured check code
2023-01-03 10:48:25 -05:00
mamoniot
fbd5e025d3
fixed comments
2022-12-29 13:48:43 -05:00
mamoniot
bc90b2da8d
fixed comment typo
2022-12-29 13:45:08 -05:00
mamoniot
e1e73975fe
fixed tests and incorrect rate limit check
2022-12-29 13:35:02 -05:00
mamoniot
4d16a30eac
implemented no double bobbing
2022-12-29 13:04:29 -05:00
mamoniot
31f05bbd5e
fixed duplicate rekey requests
2022-12-28 12:40:35 -05:00
mamoniot
53fe95c923
finished implementing ratchet count salting
2022-12-28 10:39:44 -05:00
mamoniot
c90faab4c0
prevented minor attack
2022-12-28 05:53:18 -05:00
mamoniot
87b40cd1a0
updated test
2022-12-27 22:56:15 -05:00
mamoniot
4738cedc49
updated test
2022-12-27 22:52:11 -05:00
mamoniot
dea6ec2a1e
updated comments
2022-12-27 22:47:22 -05:00
mamoniot
eb6d5f94ec
reverted bad change
2022-12-27 22:16:28 -05:00
mamoniot
eab4c3db3c
updated comment
2022-12-27 22:02:25 -05:00
mamoniot
d3d7cc1a3c
completed audit for threadsafety
2022-12-27 22:00:49 -05:00
mamoniot
bf3591f593
cleared warnings
2022-12-27 21:09:39 -05:00
mamoniot
5d72aabe17
got all tests to pass
2022-12-27 21:09:01 -05:00
mamoniot
8d1efcdffa
finished protocol
2022-12-27 15:02:46 -05:00
mamoniot
52556d0d89
finished implementation of counter starting at 1
2022-12-27 14:25:20 -05:00
Adam Ierymenko
30d58bee76
Merge branch 'tetanus' of github.com:/zerotier/ZeroTierOne into tetanus
2022-12-27 13:03:58 -05:00