ISSEI Library is a C library to access Intel(R) Silicon Security Engine firmware via a Intel(R) Silicon Security Engine Interface. ISSEI Library provides a single cross-platform API to access to ISSEI devices on Linux and Windows.
For builds that includes tests CMake script search for googltest and downloads googletest from GitHub if not found locally.
ISSEI library uses CMake for both Linux and Windows builds.
From the "Developer Command Prompt for VS 2019" with C compiler and CMake component installed:
- Go to sources directory:
cd <srcdir>
- Create
build
directory:mkdir build
- Run
cmake -G "Visual Studio 16 2019" -A <Build_arch> <srcdir>
from thebuild
directory (best to set build_arch to x64) - Run
cmake --build . --config Release --target package -j <nproc>
from thebuild
directory to build an archive with all executables and libraries, nproc is the number of parallel threads in compilation, best to set to number of processor threads available
By default CMake links with dynamic runtime (/MD), set BUILD_MSVC_RUNTIME_STATIC to ON to link with static runtime (/MT):
cmake -G "Visual Studio 16 2019" -A <Build_arch> -DBUILD_MSVC_RUNTIME_STATIC=ON <srcdir>
- Create
build
directory - Run
cmake <srcdir>
from thebuild
directory - Run
make -j$(nproc) package
from thebuild
directory to build .deb and .rpm packages and .tgz archive
The library supports multithreading but is not thread-safe. Every thread should either initialize and use its own handle or a locking mechanism should be implemented by the caller to ensure that only one thread uses the handle at any time. The only exception is ability to call disconnect to exit from read blocked on another thread.