ZeroTierOne/crypto
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
..
src Fixes to crypto on macOS, a lot of cleanup, and work on full state replication for V2 VL2 (#1911) 2023-03-14 15:29:20 -04:00
build.rs cargo fmt 2023-03-10 09:40:26 +01:00
Cargo.toml Fixes to crypto on macOS, a lot of cleanup, and work on full state replication for V2 VL2 (#1911) 2023-03-14 15:29:20 -04:00
LICENSE Tetanus custom bindings with macos and threadsafety bugfix (#1898) 2023-03-09 18:38:58 -05:00
README.md Tetanus custom bindings with macos and threadsafety bugfix (#1898) 2023-03-09 18:38:58 -05:00

ZeroTier Cryptography Library


Most of this library is just glue to provide a simple safe API around things like OpenSSL or OS-specific crypto APIs.

It is very important that this library is only linked to OpenSSL versions greater than 1.1.0. 1.1.0 introduced no-hassle threadsafety which we take advantage of. If we want a version prior to 1.1.0 we will have to add conditional threadsafety code.