Directory Structure

Everything is distributed among these directories: - src/soter - Soter sources - src/themis - Themis sources - src/wrappers - high level languages wrappers for Themis - tests - tests - docs - that's what you're reading now - docs/examples - Examples of Themis usage

Crypto engine dependency

All files in Soter root directory src/soter are engine independent. Files dependent on cryptography engine sources are placed in corresponding subfolder of Soter (now only openssl for LibreSSL/OpenSSL cryptographic engine).

Crypto engine is selected on build phase of Themis by setting ENGINE variable in Makefile. (now only libressl or openssl values are supported).

To add support of new engine to Themis: - write engine wrapper with Soter interface (see src/soter/soter.h) - put it in engine subfolder in soter root directory - add to makefile, engine selecting block:

    ifeq ($(ENGINE),engine)
        CRYPTO_ENGINE_DEF = #engine defines if needed
        CRYPTO_ENGINE_PATH=#engine files path name