Skip to content

Directory structure

vixentael edited this page Feb 4, 2018 · 8 revisions

Directory Structure

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;
  • toolscommand 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), libressl, and boringssl.
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
Clone this wiki locally
You can’t perform that action at this time.