//asylo/bazel:dlopen_enclave.bzl

asylo_dlopen_backend

asylo_dlopen_backend(name)

Declares name of the Asylo dlopen backend. Used in backend transitions.

ATTRIBUTES

Name Description Type Mandatory
name A unique name for this target. Name required

DlopenEnclaveInfo

DlopenEnclaveInfo()

A provider attached to a dlopen enclave target for compile-time type-checking purposes

FIELDS

dlopen_enclave_loader

dlopen_enclave_loader(name, enclaves, embedded_enclaves, loader_args, remote_proxy, kwargs)

Thin wrapper around enclave loader, adds necessary linkopts and testonly=1

Parameters

name required.

Name for build target.

enclaves optional. default is {}

Dictionary from enclave names to target dependencies. The dictionary must be injective. This dictionary is used to format each string in `loader_args` after each enclave target is interpreted as the path to its output binary.

embedded_enclaves optional. default is {}

Dictionary from ELF section names (that do not start with '.') to target dependencies. Each target in the dictionary is embedded in the loader binary under the corresponding ELF section.

loader_args optional. default is []

List of arguments to be passed to `loader`. Arguments may contain {enclave_name}-style references to keys from the `enclaves` dict, each of which will be replaced with the path to the named enclave.

remote_proxy optional. default is None

Host-side executable that is going to run remote enclave proxy server which will actually load the enclave(s). If empty, the enclave(s) are loaded locally.

kwargs optional.

cc_binary arguments.

dlopen_enclave_test

dlopen_enclave_test(name, kwargs)

Thin wrapper around enclave test, adds ‘asylo-dlopen’ tag and necessary linkopts

Parameters

name required.

enclave_test name

kwargs optional.

same as enclave_test kwargs

primitives_dlopen_enclave

primitives_dlopen_enclave(name, kwargs)

Defines a cc_binary enclave that uses the dlopen backend.

Parameters

name required.

The rule name.

kwargs optional.

The arguments to cc_binary.