1 stable release
1.0.0 | Dec 17, 2021 |
---|
#1531 in Algorithms
Used in 2 crates
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