Everything in this repository is distributed across the following directories:
- docs — that's what you're reading now;
- docs/examples — example uses for Themis;
- gradle/wrapper — Gradle wrapper for Android version;
- jni — components of the Android wrapper;
- src/soter — Soter sources;
- src/themis — Themis sources;
- src/wrappers/themis — high-level language wrappers for Themis;
- tests — tests;
- tools — command line utilities for local testing of Secure Cell and Secure Message;
- third_party/boringssl — submodule of BoringSSL.
Crypto engine dependencies
All the files in the root directory of Soter — src/soter are engine-independent. Files that depend on the sources of crypto engine are in the corresponding subfolder of Soter (look into openssl for LibreSSL/OpenSSL crypto engine and into boringssl for BoringSSL respectively).
The crypto engine is selected during the build phase of Themis by setting
ENGINE variable in Makefile. The following values are supported:
openssl (default option),
Please check out a detailed document on Building-and-installing in the corresponding section.
To add support for the new crypto engine to Themis:
- write engine wrapper with Soter interface (see src/soter/soter.h);
- put it in the engine subfolder in Soter's root directory;
- add the following engine-selecting block to makefile:
ifeq ($(ENGINE),engine) CRYPTO_ENGINE_DEF = #engine defines if needed CRYPTO_ENGINE_PATH=#engine files path name