This directory contains the libest project, which is an EST stack written in C. EST is used for secure certificate enrollment and is compatible with Suite B certs (as well as RSA and DSA certificates). EST is a suitable replacement for SCEP. Directory contents: /src This directory contains the EST library. The target built from this directory is libest.a. /example This directory contains sample code for implementing an application that uses the libEST library. /test This directory contains unit test code to verify the libest capabilities. Getting started --------------- 1. ./configure; make ; make install 2. Descend into the example/server directory and run the sample EST server. There is a README in this directory with detailed instructions. 3. Descend into the example/client directory and run the sample EST client. There is a README in this directory with detailed instructions. For further detailed instructions, build the reference manual PDF for libEST and refer to it. Steps to build the reference manual are in README.doxy Getting started - Windows -------------------------- libEST can be built natively on Windows, but only client functionality has been explictly tested. libEST uses Gradle for Windows build automation and the Visual Studio toolchain. To build using Gradle you must have Visual Studio 2010, 2012, or 2013 and at least Gradle 2.12 on your system. Follow the steps below to build an EST dll with Gradle: 1. Have OpenSSL built and installed on your Windows system 2. Set the following environment variables to tell the Gradle build script where to find your installations of OpenSSL and EST SSL_DIR - must contain an "include" subdirectory for the OpenSSL header files, a "bin" subdirectory for the OpenSSL dll binaries, and a "lib" subdirectory for the OpenSSL link files set SSL_DIR=C:\PathToYourLibraryInstalls\OpenSSL URIPARSER_DIR - Specify only if path segment support is required. Must contain an "include" subdirectory for uriparser header files and a "lib" subdirectory for the uriparser.lib static library file. set URIPARSER_DIR=C:\PathToYourLibraryInstalls\uriparser PATH - must contain the path to your Visual Studio 2010/2012/2013 VC bin directory prior to any other Visual Studio bin directory and the path to your Gradle executable (which should already be in PATH) set PATH=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;%PATH% 3. Invoke Gradle: gradle estReleaseSharedLibrary The est.dll binary and est.lib link file can then be found at the path below: build\libs\est\shared\release To see all build related tasks Gradle can perform for EST, type: gradle tasks Cross-compiling --------------- It has been quite a while, but libEST has been cross-compiled for Android, but no testing has been performed. Follow these steps to compile using the Android NDK: 1. Compile and install OpenSSL for Android. See OpenSSL docs for details. 2. Set the following environment variables to setup your cross-compile. This assumes you've installed OpenSSL into /usr/local/OpenSSL-Android: export CC=arm-linux-androideabi-gcc export LDFLAGS=-L/usr/local/OpenSSL-Android/lib export CFLAGS="-DDISABLE_BACKTRACE -DDISABLE_TSEARCH -DIS_FREEBSD" **Note: you may not need all the CFLAGS values above depending on your tool chain. 3. Configure libEST for cross-compiling and specify the location of your OpenSSL build: ./configure --with-ssl-dir=/usr/local/OpenSSL-Android \ --host=arm-linux-androideabi \ --disable-shared --disable-pthreads \ --prefix=/var/android/libest 4. Compile and install: make make install