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


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



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



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

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


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(name, kwargs)

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


name required.

enclave_test name

kwargs optional.

same as enclave_test kwargs


primitives_dlopen_enclave(name, kwargs)

Defines a cc_binary enclave that uses the dlopen backend.


name required.

The rule name.

kwargs optional.

The arguments to cc_binary.