Cryptography engines

Cryptography engines #

All the files in the root directory of Soter – src/soter – are engine-independent. Files that depend on the interface and implementation details of a particular cryptography engine are placed into the corresponding subdirectory of Soter:

The engine is selected during the build phase of Themis by setting the ENGINE variable in the Makefile. The following values are supported:

  • openssl (default option)
  • libressl
  • boringssl

Check out the page on building and installing Themis to learn more.

Adding new cryptography engines #

To add support for the new crypto engine to Themis:

  • write engine adapter with Soter interface (see src/soter/soter.h)
  • put it into ${your_engine} subdirectory in Soter’s root directory
  • add the following engine-selecting block to the Makefile:
    ifeq ($(ENGINE),your_engine)
        CRYPTO_ENGINE_DEF  = YOUR_ENGINE    # C preprocessor definitions
        CRYPTO_ENGINE_PATH = your_engine    # subdirectory name