1
0
mirror of https://github.com/wolfSSL/wolfssl.git synced 2026-10-24 04:09:07 +03:00
Files
Tobias Frauenschläger 29506d2cac build: distribute IDE project trees per-directory to fix "make dist"
The non-recursive automake "distdir" recipe inlines the entire $(DISTFILES)
list into a single shell command. Enumerating every IDE integration file
individually made that list large enough (~123 KB) that the recipe exceeded
the Linux MAX_ARG_STRLEN (128 KB) single-argument exec limit, so "make dist"
failed with:

    /bin/bash: Argument list too long
    make[2]: *** [distdir-am] Error 127

Replace the per-file EXTRA_DIST enumeration of the IDE directories with one
wholesale "EXTRA_DIST += IDE/<dir>" entry per directory (automake copies the
tree recursively). This collapses ~745 file entries into ~52 directory
entries and shrinks the top-level DISTFILES from ~123 KB to ~97 KB, well
under the limit.

The set of distributed IDE files is unchanged: a before/after "make dist"
diff shows no project file added or removed (only the now-unused include.am
build fragments are gone). Three directories that intentionally omit some
tracked files (apple-universal, MPLABX16, Renesas - private IDE configs,
.gitkeep placeholders, helper scripts) stay enumerated file-by-file.
2026-07-20 17:22:10 +02:00
..
2016-12-14 10:41:52 -07:00

==================================================================================================
                Static Library : wolfssl Project Overview
==================================================================================================

Requirements:
This code was created to use Intel's SGX hardware. It is expected that the user has gone through the
steps of both turning on the hardware in bios if needed and has installed the necessary software
from Intel to make use of the hardware. (https://software.intel.com/en-us/sgx) If these steps have
not been done then it is expected that the user is familure with simiulation software being used in
place of hardware.

Overview and Build:
This project creates a static library to then link with Enclaves. A simple example of an Enclave
linking to the created wolfSSL library can be found in wolfssl-examples on github. By default
the Platform Toolset is set to "Intel C++ Compiler 16.0", this may need adjusted depending on
available compilers on the system being built on.
    Testing and development was done with Visual Studio 2013. This project may build with other versions
of Visual Studio but has not been tested with them.

To link with the created library with Visual Studio first open the wolfSSL_SGX project in Visual Studio.
Select platform desired from build configuration ie Win32 or x64. (note the architecture of the library
should match that of the Enclave/application being linked to it) Select Debug or PreSales, if looking
to build in Release mode look at Intels documentation for farther steps on creating a Release build.
Next select Build->Build Solution. This will create a library named wolfssl.lib in the directory
wolfssl-root/IDE/WIN-SGX/<Configuration>/<Platform>. Move this library to the search path of Enclave
linking to. Next create an Enclave using the library.

Limitations:
    Single Threaded (multiple threaded applications have not been tested)
    Crypto Only (network communication from trusted Enclave has not been added yet)
    No ASN/Certificates (handling getting the system time has not yet been added)
    AES-NI use with SGX has not been added in yet