Building from Source

To use the SDK in a project, the code from the SDK must be included in that project. The easiest way to do this is to link to static libraries. The SDK comes with build scripts to build static libraries for common environments.

Prerequisites

Building SDK code out of the box requires a number of tools. This section lists the tools used to build the SDK.

For more information on how to install these tools, refer to Guide to Installing Build Tools.

Prerequisite Notes
A C/C++ compiler Core code in C. Unit tests need C++11 support.
Python Validated with v2.7.10
SCons Validated with v2.4.1
Parts 0.10.9.2 or later

Building SDK with SCons

To use the SDK, you need to build it to generate libraries compatible with your build environment.

To build based on the default SConstruct file in the root directory of the SDK, invoke scons with no arguments.

cd <path/to/sdk-root>
scons

By default, this performs a 64 bit release build.

Potentially useful command line options:

Option Action
--cfg=debug Build in debug mode
--cfg=release Build in release mode
--target=x86 Target x86
--target=x86_64 Target x86_64
--tc=cl Use MSVC to compile (Microsoft®* C/C++ Optimizing Compiler)
--tc=gcc Use GCC to compile (GNU* Compiler Collection)
--tc=icl,mstools Use Intel® C++ compiler
build:: Build the SDK (does not build unit tests)
utest:: Build unit tests
run_utest:: Run unit tests (builds tests if needed)
-c Clean the build

Built components appear in the _install directory of the SDK root.

Alternate Makefile/Autoconf Based Build Approach

You can build with the make command on platforms that support Make/Autoconf.

In the root directory of the SDK, run:

./configure
make all
make check
make install

./configure sets up the default settings:

  • The default compilers are GCC/G++. You can specify compilers via the CC and CXX variables. For example, ./configure CC=/opt/intel/bin/icc CXX=/opt/intel/bin/icpc
  • The default installation directory is ./_install. You can specify the installation directory by using ./configure --prefix=/usr/local/epid_install
  • To change OS bit version, use CFLAGS parameter -m32 and -m64. For example, ./configure CFLAGS=-m32

make check is optional. It builds and runs the unit tests.

Alternatively, you can use make build as a shortcut to replace make all, make check, and make install.

To clean the build, run make clean.

To remove the install directory, run make uninstall.

Improving Performance with Commercial IPP

For higher performance, you can use the commercial version of Cryptography for Intel® Integrated Performance Primitives, available at https://software.intel.com/articles/download-ipp-cryptography-libraries.

Note
The SDK has been validated with v9.0.3 of the cryptography library.

To build the SDK using a commercial Intel® IPP installation, the IPPROOT environment variable must be properly configured to point to the IPP installation directory, as described in Setting Environment Variables* in the Intel® IPP User's Guide (PDF link).

Once the environment is configured, you can build using commercial IPP by specifying --use-commercial-ipp as a command line option.

Example Programs

The SDK includes several examples that show you different aspects of how the Intel® EPID scheme works. In the SDK build, these examples are located in _install/epid-sdk/example.

Name Description
signmsg Create Intel® EPID signature of message
verifysig Verify signature is from a group member in good standing

Building with Other Build Systems

It is relatively straightforward to port the SDK to your build system of choice. The following dependency diagram shows the relationship between components and the sources used to build them.

basicdoc.png


Other names and brands may be claimed as the property of others.