spank-olm

WIP Do not look
git clone git://archive.git.mtrnord.blog/MTRNord/spank-olm.git
Log | Files | Refs | README | LICENSE

README.md (2009B)


      1 # spank_olm
      2 
      3 [![GitHub](https://img.shields.io/github/license/MTRNord/spank_olm)](https://github.com/MTRNord/spank_olm/blob/main/LICENSE)
      4 
      5 ## Overview
      6 
      7 `spank_olm` is a C++ library based on the [libolm](https://gitlab.matrix.org/matrix-org/olm) library
      8 from [matrix.org](https://matrix.org). It aims to provide cryptographic functionalities similar to libolm but is not
      9 intended for production use. The library has not undergone any security audits.
     10 
     11 ## Features
     12 
     13 - Cryptographic operations based on libolm
     14 - Fuzzing support for enhanced security testing
     15 - Uses Botan3 as the cryptographic backend
     16 
     17 ## Installation
     18 
     19 To install `spank_olm`, clone the repository and build it using Meson.
     20 
     21 ```sh
     22 git clone https://github.com/MTRNord/spank_olm.git
     23 cd spank_olm
     24 meson setup build
     25 meson compile -C build
     26 ```
     27 
     28 To build shared libraries:
     29 
     30 ```sh
     31 meson setup build_shared --default-library=shared
     32 meson compile -C build_shared
     33 ```
     34 
     35 To build static libraries:
     36 
     37 ```sh
     38 meson setup build_static --default-library=static
     39 meson compile -C build_static
     40 ```
     41 
     42 To build wasm libraries:
     43 
     44 ```sh
     45 meson setup build-wasm --cross-file wasm-cross-file.txt --default-library=static -Dbotan_wasm_path=../botan/ -Dbotan_include_path=../botan/build/include/public/ -Dcpp_std=c++2a
     46 meson compile -C build-wasm
     47 ```
     48 
     49 ## Usage
     50 
     51 Include `spank_olm` in your C++ project and link against it. Refer to the source code for examples of how to use the
     52 library's functionalities.
     53 
     54 ## Fuzzing
     55 
     56 Fuzzing is a key goal for this project. The repository includes a GitHub Actions workflow for running fuzz tests using
     57 ClusterFuzzLite.
     58 
     59 ## License
     60 
     61 This project is licensed under the GNU Affero General Public License, Version 3. See
     62 the [LICENSE](https://github.com/MTRNord/spank_olm/blob/main/LICENSE) file for details.
     63 
     64 ## Disclaimer
     65 
     66 - This library is not production-ready.
     67 - No security audit has been performed.
     68 - Tests are available but not yet set up on CI.
     69 
     70 ## Contributing
     71 
     72 Contributions are welcome! Please open issues and pull requests as needed.