Module spin_sdk.wit.imports.wasi_random_random_0_2_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(len: int) ‑> bytes
Expand source code
def get_random_bytes(len: int) -> bytes:
    """
    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.
    """
    raise NotImplementedError

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.

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 NotImplementedError

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.