diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0df64e9..293e492 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,4 +11,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: WebAssembly/wit-abi-up-to-date@v17 + - uses: WebAssembly/wit-abi-up-to-date@v21 diff --git a/imports.md b/imports.md index 4da4585..c979557 100644 --- a/imports.md +++ b/imports.md @@ -2,19 +2,19 @@ -

Import interface wasi:random/random@0.2.0

+

Import interface 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

-

get-random-bytes: func

+

get-random-bytes: func

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 @@ -27,13 +27,13 @@ must omit this function, rather than implementing it with deterministic data.

Params
Return values
-

get-random-u64: func

+

get-random-u64: func

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.

@@ -41,13 +41,13 @@ represented as a u64.

-

Import interface wasi:random/insecure@0.2.0

+

Import interface wasi:random/insecure@0.2.0

The insecure interface for insecure pseudo-random numbers.

It is intended to be portable at least between Unix-family platforms and Windows.


Functions

-

get-insecure-random-bytes: func

+

get-insecure-random-bytes: func

Return len insecure pseudo-random bytes.

This function is not cryptographically secure. Do not use it for anything related to security.

@@ -56,13 +56,13 @@ implementations are encouraged to return evenly distributed values with a long period.

Params
Return values
-

get-insecure-random-u64: func

+

get-insecure-random-u64: func

Return an insecure pseudo-random u64 value.

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

@@ -70,13 +70,13 @@ a long period.

-

Import interface wasi:random/insecure-seed@0.2.0

+

Import interface wasi:random/insecure-seed@0.2.0

The insecure-seed interface for seeding hash-map DoS resistance.

It is intended to be portable at least between Unix-family platforms and Windows.


Functions

-

insecure-seed: func

+

insecure-seed: func

Return a 128-bit value that may contain a pseudo-random value.

The returned value is not required to be computed from a CSPRNG, and may even be entirely deterministic. Host implementations are encouraged to diff --git a/wit/insecure-seed.wit b/wit/insecure-seed.wit index 47210ac..4cce628 100644 --- a/wit/insecure-seed.wit +++ b/wit/insecure-seed.wit @@ -3,6 +3,7 @@ package wasi:random@0.2.0; /// /// It is intended to be portable at least between Unix-family platforms and /// Windows. +@since(version = 0.2.0) interface insecure-seed { /// Return a 128-bit value that may contain a pseudo-random value. /// @@ -21,5 +22,6 @@ interface insecure-seed { /// This will likely be changed to a value import, to prevent it from being /// called multiple times and potentially used for purposes other than DoS /// protection. + @since(version = 0.2.0) insecure-seed: func() -> tuple; } diff --git a/wit/insecure.wit b/wit/insecure.wit index c58f4ee..3cea0c4 100644 --- a/wit/insecure.wit +++ b/wit/insecure.wit @@ -3,6 +3,7 @@ package wasi:random@0.2.0; /// /// It is intended to be portable at least between Unix-family platforms and /// Windows. +@since(version = 0.2.0) interface insecure { /// Return `len` insecure pseudo-random bytes. /// @@ -12,11 +13,13 @@ interface insecure { /// There are no requirements on the values of the returned bytes, however /// implementations are encouraged to return evenly distributed values with /// a long period. + @since(version = 0.2.0) get-insecure-random-bytes: func(len: u64) -> list; /// Return an insecure pseudo-random `u64` value. /// /// This function returns the same type of pseudo-random data as /// `get-insecure-random-bytes`, represented as a `u64`. + @since(version = 0.2.0) get-insecure-random-u64: func() -> u64; } diff --git a/wit/random.wit b/wit/random.wit index 0c017f0..41c3a03 100644 --- a/wit/random.wit +++ b/wit/random.wit @@ -3,6 +3,7 @@ package wasi:random@0.2.0; /// /// It is intended to be portable at least between Unix-family platforms and /// Windows. +@since(version = 0.2.0) interface random { /// Return `len` cryptographically-secure random or pseudo-random bytes. /// @@ -16,11 +17,13 @@ interface random { /// This function must always return fresh data. Deterministic environments /// must omit this function, rather than implementing it with deterministic /// data. + @since(version = 0.2.0) get-random-bytes: func(len: u64) -> list; /// 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`. + @since(version = 0.2.0) get-random-u64: func() -> u64; } diff --git a/wit/world.wit b/wit/world.wit index 3da3491..b5560a6 100644 --- a/wit/world.wit +++ b/wit/world.wit @@ -1,7 +1,13 @@ package wasi:random@0.2.0; +@since(version = 0.2.0) world imports { + @since(version = 0.2.0) import random; + + @since(version = 0.2.0) import insecure; + + @since(version = 0.2.0) import insecure-seed; }