Files
graphene/Examples/curl/curl.manifest.template
Paweł Marczewski 17ab04db59 [Pal,LibOS] New logging system
Instead of 'loader.debug_type', introduce 'loader.log_level'
and 'loader.log_file', along with a set of definitions for
logging at a chosen level.

For now, the call sites keep using the legacy macros (SGX_DBG and
debug()), because converting them all will conflict with other
big changes in the code base. The existing LibOS calls are
assumed to be at 'info' level.
2021-01-20 17:27:29 +01:00

79 lines
3.3 KiB
Plaintext

# Curl manifest file example
#
# This manifest was prepared and tested on Ubuntu 16.04.
libos.entrypoint = "file:$(CURL_DIR)/curl"
loader.argv0_override = "curl"
# LibOS layer library of Graphene. There is currently only one implementation,
# so it is always set to libsysdb.so.
loader.preload = "file:$(GRAPHENEDIR)/Runtime/libsysdb.so"
# Graphene log level
loader.log_level = "$(GRAPHENE_LOG_LEVEL)"
# Read application arguments directly from the command line. Don't use this on production!
loader.insecure__use_cmdline_argv = 1
# Specify paths to search for libraries. The usual LD_LIBRARY_PATH syntax
# applies. Paths must be in-Graphene visible paths, not host-OS paths (i.e.,
# paths must be taken from fs.mount.xxx.path, not fs.mount.xxx.uri).
loader.env.LD_LIBRARY_PATH = "/lib:$(ARCH_LIBDIR):/usr/$(ARCH_LIBDIR)"
# Mount host-OS directory to required libraries (in 'uri') into in-Graphene
# visible directory /lib (in 'path').
fs.mount.lib.type = "chroot"
fs.mount.lib.path = "/lib"
fs.mount.lib.uri = "file:$(GRAPHENEDIR)/Runtime"
fs.mount.lib2.type = "chroot"
fs.mount.lib2.path = "$(ARCH_LIBDIR)"
fs.mount.lib2.uri = "file:$(ARCH_LIBDIR)"
fs.mount.lib3.type = "chroot"
fs.mount.lib3.path = "/usr$(ARCH_LIBDIR)"
fs.mount.lib3.uri = "file:/usr/$(ARCH_LIBDIR)"
fs.mount.etc.type = "chroot"
fs.mount.etc.path = "/etc"
fs.mount.etc.uri = "file:/etc"
fs.mount.curl.type = "chroot"
fs.mount.curl.path = "$(CURL_DIR)"
fs.mount.curl.uri = "file:$(CURL_DIR)"
# Set enclave size (somewhat arbitrarily) to 256MB. Recall that SGX v1 requires
# to specify enclave size at enclave creation time.
sgx.enclave_size = "256M"
# Set maximum number of in-enclave threads (somewhat arbitrarily) to 4. Recall
# that SGX v1 requires to specify the maximum number of simultaneous threads at
# enclave creation time.
sgx.thread_num = 4
# Specify all binaries used by curl and its dependencies (including all libs
# which can be loaded at runtime via dlopen).
sgx.trusted_files.curl = "file:$(CURL_DIR)/curl"
sgx.trusted_files.ld = "file:$(GRAPHENEDIR)/Runtime/ld-linux-x86-64.so.2"
sgx.trusted_files.libc = "file:$(GRAPHENEDIR)/Runtime/libc.so.6"
sgx.trusted_files.libm = "file:$(GRAPHENEDIR)/Runtime/libm.so.6"
sgx.trusted_files.libdl = "file:$(GRAPHENEDIR)/Runtime/libdl.so.2"
sgx.trusted_files.librt = "file:$(GRAPHENEDIR)/Runtime/librt.so.1"
sgx.trusted_files.libutil = "file:$(GRAPHENEDIR)/Runtime/libutil.so.1"
sgx.trusted_files.libpthread = "file:$(GRAPHENEDIR)/Runtime/libpthread.so.0"
sgx.trusted_files.libresolv = "file:$(GRAPHENEDIR)/Runtime/libresolv.so.2"
sgx.trusted_files.libnssdns = "file:$(GRAPHENEDIR)/Runtime/libnss_dns.so.2"
sgx.trusted_files.libnss_files = "file:$(ARCH_LIBDIR)/libnss_files.so.2"
sgx.trusted_files.libnss_mdns4_minimal = "file:$(ARCH_LIBDIR)/libnss_mdns4_minimal.so.2"
# Name Service Switch (NSS) files. Glibc reads these files as part of name-
# service information gathering. For more info, see 'man nsswitch.conf'.
sgx.allowed_files.nsswitch = "file:/etc/nsswitch.conf"
sgx.allowed_files.hostconf = "file:/etc/host.conf"
sgx.allowed_files.resolvconf = "file:/etc/resolv.conf"
sgx.allowed_files.ethers = "file:/etc/ethers"
sgx.allowed_files.hosts = "file:/etc/hosts"
sgx.allowed_files.group = "file:/etc/group"
sgx.allowed_files.passwd = "file:/etc/passwd"
sgx.allowed_files.gaiconf = "file:/etc/gai.conf"