<?php /** * This does nothing if the libsodium extension is loaded, so it's harmless. * * This file alone is released under CC0 and WTFPL dual licensing. */ namespace Sodium { if (!extension_loaded('libsodium')) { /** * Generate a string of random bytes * /dev/urandom * * @param int $length * @return string */ function randombytes_buf( $length ) { return ''; } /** * Generate a 16-bit integer * /dev/urandom * * @return int */ function randombytes_random16() { return ''; } /** * Generate an unbiased random integer between 0 and a specified value * /dev/urandom * * @param int $upperBoundNonInclusive * @return int */ function randombytes_uniform( $upperBoundNonInclusive ) { return 0; } } } namespace { class Sodium { /** * Generate a string of random bytes * /dev/urandom * * @param int $length * @return string */ public static function randombytes_buf($length) { return ''; } /** * Generate a 16-bit integer * /dev/urandom * * @return int */ public static function randombytes_random16() { return ''; } /** * Generate an unbiased random integer between 0 and a specified value * /dev/urandom * * @param int $upperBoundNonInclusive * @return int */ public static function randombytes_uniform($upperBoundNonInclusive = 0) { return 0; } } }