Skip to content

CryptoLib: Environment & Building

Donovan Ice edited this page Jan 23, 2025 · 26 revisions

Environment

Environment and dependency details may be found within ./support/Dockerfile. If running via docker, dependencies will be installed automatically.

If the user decides to build locally, ensure all dependencies below are met.



Note: Theses dependencies are for the default internal build, other builds may vary.

Running requires:

Apt:
autoconf automake
ca-certificates cmake
curl g++-multilib
gcc-multilib gettext
git gdb
lcov libcurl4-openssl-dev
libmariadb-dev libmariadb-dev-compat
libtool unzip
make python3-dev
python3-pip

Web:
libgpg-error 1.50 libgcrypt 1.11.0


Building

There are numerous configurations when building CryptoLib. References to necessary build flags can be found within ./support/scripts/. For example to build the current internal build:

Clone the CryptoLib repo. Switch to the desired branch. Currently, integration efforts are occurring in the main branch.

  • cd Cryptolib
  • ./support/scripts/build_internal.sh

This will build the internal debug environment, with code coverage, testing, and encryption testing.

Other Build Configurations:

  • KMC, Minimal, WolfSSL, and other configurations have convenience scripts which can be referenced within the ./support/scripts/ directory.

Code Coverage: With the DCODECOV Flag set, users may produce code coverage results similarly to the code below:

  • cmake -DMYSQL=1 -DENCTEST=1 -DDEBUG=1 -DCODECOV=1 ../
  • make
  • make gcov

This will produce local coverage reports in /build/coverage, with the HTML results within /build/coverage/results/index.html

Cleanup:

  • make clean -- Cleans Build
  • make scrub -- Cleans Code Coverage

The two flags (DEBUG and TEST_ENC) can be used simultaneously, or separately.

All Build Flags:

  • CODECOV -- "Code Coverage" -- Default OFF
  • CRYPTO_LIBGCRYPT -- "Cryptography Module - Libgcrypt" -- Default ON
  • CRYPTO_KMC -- "Cryptography Module - KMC" -- Default OFF
  • CRYPTO_WOLFSSL -- "Cryptography Module - WolfSSL" -- Default OFF
  • CRYPTO_CUSTOM -- "Cryptography Module - CUSTOM" -- Default OFF
  • CRYPTO_CUSTOM_PATH -- "Cryptography Module - CUSTOM PATH" -- Default OFF
  • DEBUG -- "Debug" -- Default OFF
  • KEY_CUSTOM -- "Key Module - Custom"-- Default OFF
  • KEY_CUSTOM_PATH -- "Custom Key Path" -- Default OFF
  • KEY_INTERNAL -- "Key Module - Internal" -- Default ON
  • KEY_KMC -- "Key Module - KMC"-- Default OFF
  • MC_CUSTOM -- "Monitoring and Control - Custom" -- Default OFF
  • MC_CUSTOM_PATH -- "Custom Monitoring and Control path" -- Default OFF
  • MC_DISABLED -- "Monitoring and Control - Disabled" -- Default OFF
  • MC_INTERNAL -- "Monitoring and Control - Internal" -- Default ON
  • SA_CUSTOM -- "Security Association - Custom" -- Default OFF
  • SA_CUSTOM_PATH -- "Custom Security Association Path" -- Default OFF
  • SA_INTERNAL -- "Security Association - Internal" -- Default ON
  • SA_MARIADB -- "Security Association - MariaDB" -- Default OFF
  • SUPPORT -- "Support" -- Default OFF
  • SYSTEM_INSTALL -- "SystemInstall" -- Default OFF
  • TEST -- "Test" -- Default OFF
  • TEST_ENC -- "Tests - Encryption"-- Default OFF
  • SA_FILE -- "Save Security Association to File" -- Default OFF
  • KEY_VALIDATION -- "Validate existence of key duplication"-- Default OFF
  • KMC_MDB_RH "KMC-MDB-RedHat-Integration-Testing" -- Default OFF
  • KMC_MDB_DB "KMC-MDB-Debian-Integration-Testing" -- Default OFF
  • KMC_CFFI_EXCLUDE "KMC-Exclude-Problematic-CFFI-Code" -- Default OFF
  • CRYPTO_EPROC -- "Enables the building and use of Extended Procedures" -- Default OFF
Clone this wiki locally