Implementation of the proposed Messaging Layer Security protocol in C++. Depends on C++17, STL for data structures, and OpenSSL for crypto.
Using the convenient Makefile that wraps CMake:
> make
> make test
- Following Mozilla
clang-formatstyle. If you use the top-level Makefile (as suggested above), it will auto-format for you. - General naming conventions:
- Camel case for classes (
RatchetNode) - Snake case for variables, functions, members (
derive_epoch_keys) - Private member variables start with underscore (
_) - In general, prefer descriptive names
- Camel case for classes (
- For cryptographic keys in particular:
X_keyis the public key of an asymmetric key pairX_privis the private key of an asymmetric key pairX_secretis a symmetric secret