#random #csprng #prng

wasmium-random

Generate random numeric, alphabet, alphanumeric, BIP39 and EFF random bytes

1 stable release

Uses new Rust 2021

1.0.0 Dec 17, 2021

#503 in Algorithms

23 downloads per month
Used in 2 crates

CC0-1.0 OR Apache-2.0

205KB
9K SLoC

WasmiumRandom - your cute 🤪 stack-allocated random byte generator

This crate uses the nanorand crate to generate random bytes from the English alphabet characters, Alphanumeric characters and numeric characters.

This crate does not allocate on the heap. Any heap allocation is a bug, please file an issue on Github. Parallelism is planned at a later date.

Usage

Import the crate

use wasmium_random::WasmiumRandom;

Generate bytes securely from a CSPRNG using the alphabet a-z,A-Z. This is useful for cryptographic applications.

use wasmium_random::WasmiumRandom;

// Generate 12 random bytes
WasmiumRandom::secure_alphabet12();

// Generate 24 random bytes
WasmiumRandom::secure_alphabet24();

// Generate 32 random bytes
WasmiumRandom::secure_alphabet32();

// Generate 64 random bytes
WasmiumRandom::secure_alphabet64();

// Generate 128 random bytes
WasmiumRandom::secure_alphabet128();

// Generate 256 random bytes
WasmiumRandom::secure_alphabet256();

// Generate 512 random bytes
WasmiumRandom::secure_alphabet512();

Generate bytes securely from a CSPRNG using the alphanumeric characters 0-9,a-z,A-Z. This is useful for cryptographic applications.

use wasmium_random::WasmiumRandom;

// Generate 12 random bytes securely
WasmiumRandom::secure_alphanumeric12();

// Generate 24 random bytes securely
WasmiumRandom::secure_alphanumeric24();

// Generate 32 random bytes securely
WasmiumRandom::secure_alphanumeric32();

// Generate 64 random bytes securely
WasmiumRandom::secure_alphanumeric64();

// Generate 128 random bytes securely
WasmiumRandom::secure_alphanumeric128();

// Generate 512 random bytes securely
WasmiumRandom::secure_alphanumeric512();

Generate bytes securely from a CSPRNG using the numeric characters 0-9. This is useful for cryptographic applications.

use wasmium_random::WasmiumRandom;

// Generate 12 random bytes securely
WasmiumRandom::secure_numeric12();

// Generate 24 random bytes securely
WasmiumRandom::secure_numeric24();

// Generate 32 random bytes securely
WasmiumRandom::secure_numeric32();

// Generate 64 random bytes securely
WasmiumRandom::secure_numeric64();

// Generate 128 random bytes securely
WasmiumRandom::secure_numeric128();

// Generate 512 random bytes securely
WasmiumRandom::secure_numeric512();

Non-cryptographically secure random bytes are also supported using the super fast Wyrand PRNG.

Generate bytes from a PRNG using the alphabet a-z,A-Z.

use wasmium_random::WasmiumRandom;

// Generate 12 random bytes
WasmiumRandom::wyrand_alphabet12();

// Generate 24 random bytes
WasmiumRandom::wyrand_alphabet24();

// Generate 32 random bytes
WasmiumRandom::secure_alphabet32();

// Generate 64 random bytes
WasmiumRandom::wyrand_alphabet64();

// Generate 128 random bytes
WasmiumRandom::wyrand_alphabet128();

// Generate 256 random bytes
WasmiumRandom::wyrand_alphabet256();

// Generate 512 random bytes
WasmiumRandom::wyrand_alphabet512();

Generate bytes from a PRNG using the alphanumeric characters 0-9,a-z,A-Z.

use wasmium_random::WasmiumRandom;

// Generate 12 random bytes
WasmiumRandom::wyrand_alphanumeric12();

// Generate 24 random bytes
WasmiumRandom::wyrand_alphanumeric24();

// Generate 32 random bytes
WasmiumRandom::wyrand_alphanumeric32();

// Generate 64 random bytes
WasmiumRandom::wyrand_alphanumeric64();

// Generate 128 random bytes
WasmiumRandom::wyrand_alphanumeric128();

// Generate 512 random bytes
WasmiumRandom::wyrand_alphanumeric512();

Generate bytes from a PRNG using the numeric characters 0-9.

use wasmium_random::WasmiumRandom;

// Generate 12 random bytes securely
WasmiumRandom::wyrand_numeric12();

// Generate 24 random bytes securely
WasmiumRandom::wyrand_numeric24();

// Generate 32 random bytes securely
WasmiumRandom::wyrand_numeric32();

// Generate 64 random bytes securely
WasmiumRandom::wyrand_numeric64();

// Generate 128 random bytes securely
WasmiumRandom::wyrand_numeric128();

// Generate 512 random bytes securely
WasmiumRandom::wyrand_numeric512();

NOTE: The bytes from characters can be generated to upto 2048 bytes. See the submodule documentation.

The BIP39, EFF shortlist and EFF largelist of English alphabet words are also supported.

LICENCE

CC0-1.0 or Apache-2.0

Dependencies