Intel® Software Guard Extensions (Intel® SGX)
Discussion board focused on hardware-based isolation and memory encryption to provide extended code protection in solutions.

Does SGX SDK support BOOST libraries?

dai_c_
Beginner
817 Views

I find SGX SDK doesn't support BOOST(partially – as long as Boost runtime is not used) in the developer documentation(as show in the bottom picture). and what's that mean?whether it means I can use BOOST libraries by a special way? and if I want to use 256 bit integer in the enclave,Is there any way about how to use BOOST libraries (boost/multiprecision/cpp_int.hpp) in the enclave to achieve this goal?

Thank you very much! I am looking forward to your reply!

 

                       name                            supported                                                       detail

SGX SDK BOOST.png

 

0 Kudos
2 Replies
Tom__Jimmy
Beginner
817 Views

Have you solved your problem? Do you support the import and use of boost library? Please let me know. Thank you!

0 Kudos
JesusG_Intel
Moderator
817 Views

Hello jimmy518inchina,

You can use the features of Boost that require header files only. Boost runtime, which is not supported, refers to the Boost libraries that must be compiled and linked with your code. There may be other Boost functions that are not supported but, unfortunately, we don't have a list for what exactly is supported or not supported. You should read about C and C++ artifacts that are not supported by SGX in the section Library Functions and Type Reference and the Appendix of the Intel Software Guard Extensions Developer Reference.

According to Boost documentation:

The only Boost libraries that must be built separately are:

  • Boost.Filesystem
  • Boost.IOStreams
  • Boost.ProgramOptions
  • Boost.Python (see the Boost.Python build documentation before building and installing it)
  • Boost.Regex
  • Boost.Serialization
  • Boost.Signals
  • Boost.System
  • Boost.Thread
  • Boost.Wave

A few libraries have optional separately-compiled binaries:

  • Boost.DateTime has a binary component that is only needed if you're using its to_string/from_string or serialization features, or if you're targeting Visual C++ 6.x or Borland.
  • Boost.Graph also has a binary component that is only needed if you intend to parse GraphViz files.
  • Boost.Test can be used in “header-only” or “separately compiled” mode, although separate compilation is recommended for serious use.

Regards,

Jesus

Intel Customer Support

0 Kudos
Reply