wasmtime_wasi::bindings::sync::random::random

Trait Host

source
pub trait Host: Send {
    // Required methods
    fn get_random_bytes(&mut self, len: u64) -> Result<Vec<u8>>;
    fn get_random_u64(&mut self) -> Result<u64>;
}

Required Methods§

source

fn get_random_bytes(&mut self, len: u64) -> Result<Vec<u8>>

Return len cryptographically-secure random or pseudo-random bytes.

This function must produce data at least as cryptographically secure and fast as an adequately seeded cryptographically-secure pseudo-random number generator (CSPRNG). It must not block, from the perspective of the calling program, under any circumstances, including on the first request and on requests for numbers of bytes. The returned data must always be unpredictable.

This function must always return fresh data. Deterministic environments must omit this function, rather than implementing it with deterministic data.

source

fn get_random_u64(&mut self) -> Result<u64>

Return a cryptographically-secure random or pseudo-random u64 value.

This function returns the same type of data as get-random-bytes, represented as a u64.

Implementations on Foreign Types§

source§

impl<_T: Host + ?Sized + Send> Host for &mut _T

source§

fn get_random_bytes(&mut self, len: u64) -> Result<Vec<u8>>

Return len cryptographically-secure random or pseudo-random bytes.

This function must produce data at least as cryptographically secure and fast as an adequately seeded cryptographically-secure pseudo-random number generator (CSPRNG). It must not block, from the perspective of the calling program, under any circumstances, including on the first request and on requests for numbers of bytes. The returned data must always be unpredictable.

This function must always return fresh data. Deterministic environments must omit this function, rather than implementing it with deterministic data.

source§

fn get_random_u64(&mut self) -> Result<u64>

Return a cryptographically-secure random or pseudo-random u64 value.

This function returns the same type of data as get-random-bytes, represented as a u64.

Implementors§

source§

impl<T> Host for WasiImpl<T>
where T: WasiView,