Module spin_sdk.wit.imports.wasi_random_random_0_3_0
WASI Random is a random data API.
It is intended to be portable at least between Unix-family platforms and Windows.
Functions
def get_random_bytes(max_len: int) ‑> bytes-
Expand source code
def get_random_bytes(max_len: int) -> bytes: """ Return up to `max-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. Implementations MAY return fewer bytes than requested (a short read). Callers that require exactly `max-len` bytes MUST call this function in a loop until the desired number of bytes has been accumulated. Implementations MUST return at least 1 byte when `max-len` is greater than zero. When `max-len` is zero, implementations MUST return an empty list without trapping. This function must always return fresh data. Deterministic environments must omit this function, rather than implementing it with deterministic data. """ raise NotImplementedErrorReturn up to
max-lencryptographically-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.
Implementations MAY return fewer bytes than requested (a short read). Callers that require exactly
max-lenbytes MUST call this function in a loop until the desired number of bytes has been accumulated. Implementations MUST return at least 1 byte whenmax-lenis greater than zero. Whenmax-lenis zero, implementations MUST return an empty list without trapping.This function must always return fresh data. Deterministic environments must omit this function, rather than implementing it with deterministic data.
def get_random_u64() ‑> int-
Expand source code
def get_random_u64() -> int: """ 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`. """ raise NotImplementedErrorReturn a cryptographically-secure random or pseudo-random
u64value.This function returns the same type of data as
get-random-bytes, represented as au64.