Struct switchboard_common::gramine::Gramine
source · pub struct Gramine;
client
only.Expand description
Gramine
: Gramine is a virtualized runtime used to manage vanilla binaries
to execute in an SGX execution environment. This struct allows access to
specific overrides that come out-of-the-box with Gramine.
Implementations§
source§impl Gramine
impl Gramine
sourcepub fn generate_quote(user_data: &[u8]) -> Result<Vec<u8>, SbError>
pub fn generate_quote(user_data: &[u8]) -> Result<Vec<u8>, SbError>
Gramine::generate_quote
: This call allows the user to progmatically
create a signature, or “quote” that can prove some piece of data was
generated by a specific enclave. This quote contains a field, “MR_ENCLAVE”
Which holds a measurement of the code that generated the signature.
Parameters:
user_data
: This is an arbitrary piece of data that can be attached to the signature for other parties to verify that this data was produced in an enclave with a MR_ENCLAVE measurement
Returns
Vec<u8>
of a buffer containing the quote/signature
sourcepub fn read_rand(buf: &mut [u8]) -> Result<(), SbError>
pub fn read_rand(buf: &mut [u8]) -> Result<(), SbError>
read_rand
: Gramine provides convinient accessors to read randomness
that could not be predicted outside the enclave. Gramine will intercept
calls to the getrandom syscall, /dev/random, and /dev/urandom to use
SGX sourced randomness instead.
Relavent documentation:
Parameters:
buf
: the buffer to write the output randomness to.
Returns
Error on failure.
sourcepub fn read_rand_unsafe(output: &mut [u8]) -> Result<(), SbError>
pub fn read_rand_unsafe(output: &mut [u8]) -> Result<(), SbError>
read_rand_unsafe
: Gramine provides convinient accessors to read randomness
that could not be predicted outside the enclave. Gramine will intercept
calls to the getrandom syscall, /dev/random, and /dev/urandom to use
SGX sourced randomness instead.
Relavent documentation:
Parameters:
buf
: the buffer to write the output randomness to.
Returns
Error on failure.