Skip to content
Branch: master
Go to file
Code

Latest commit

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 

README.md

mruby-sysrandom

Secure random number generation for mruby using system RNG facilities e.g. /dev/urandom, getrandom(2)

Description

In cryptography circles, the prevailing advice is to use OS RNG functionality, namely /dev/urandom or equivalent calls which use an OS-level CSPRNG to produce random numbers.

This gem provides an easy-to-install repackaging of the randombytes functionality from libsodium for the purpose of generating secure random numbers trustworthy for use in cryptographic contexts, such as generating cryptographic keys, initialization vectors, or nonces.

The following random number generators are utilized:

Platform RNG
Linux getrandom(2) if available, otherwise /dev/urandom
Windows RtlGenRandom CryptGenRandom without CryptoAPI deps
OpenBSD arc4random(3) with ChaCha20 CSPRNG (not RC4)
Others /dev/urandom

Usage

Sysrandom.random_bytes # returns a 16 byte binary string

Sysrandom.random_bytes(64)

Sysrandom.random_bytes(" " * 10)

Sysrandom.random # returns a number

Sysrandom.uniform(upper_bound) # returns a number up to upper_bound

Sysrandom.base64 # returns a 16 byte binary string as base64

Sysrandom.base64(64)

Sysrandom.base64(" " * 10)

Sysrandom.hex # returns a 16 byte binary string as hex

Sysrandom.hex(64)

Sysrandom.hex(" " * 10)

About

Secure random number generation for mruby

Topics

Resources

License

Releases

No releases published
You can’t perform that action at this time.