update
This commit is contained in:
97
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/CAPICOM.php
vendored
Normal file
97
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/CAPICOM.php
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The Capicom Random Number Source
|
||||
*
|
||||
* This uses the Windows CapiCom Com object to generate random numbers
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Strength;
|
||||
/**
|
||||
* The Capicom Random Number Source
|
||||
*
|
||||
* This uses the Windows CapiCom Com object to generate random numbers
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
class CAPICOM extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* Return an instance of Strength indicating the strength of the source
|
||||
*
|
||||
* @return \SecurityLib\Strength An instance of one of the strength classes
|
||||
*/
|
||||
public static function getStrength()
|
||||
{
|
||||
return new Strength(Strength::MEDIUM);
|
||||
}
|
||||
/**
|
||||
* If the source is currently available.
|
||||
* Reasons might be because the library is not installed
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isSupported()
|
||||
{
|
||||
return class_exists('\COM', \false);
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
if (!\class_exists('COM', \false)) {
|
||||
/** @var string $result */
|
||||
$result = static::emptyValue($size);
|
||||
return $result;
|
||||
}
|
||||
try {
|
||||
/** @var \COM $util */
|
||||
$util = new \COM('CAPICOM.Utilities.1');
|
||||
if (!\method_exists($util, 'GetRandom')) {
|
||||
/** @var string $result */
|
||||
$result = static::emptyValue($size);
|
||||
return $result;
|
||||
}
|
||||
$data = base64_decode((string) $util->GetRandom($size, 0));
|
||||
return (string) str_pad($data, $size, chr(0));
|
||||
} catch (\Exception $e) {
|
||||
unset($e);
|
||||
/** @var string $result */
|
||||
$result = static::emptyValue($size);
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
80
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/MTRand.php
vendored
Normal file
80
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/MTRand.php
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The MTRand Random Number Source
|
||||
*
|
||||
* This source generates low strength random numbers by using the internal
|
||||
* mt_rand() function. By itself it is quite weak. However when combined with
|
||||
* other sources it does provide significant benefit.
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Strength;
|
||||
/**
|
||||
* The MTRand Random Number Source
|
||||
*
|
||||
* This source generates low strength random numbers by using the internal
|
||||
* mt_rand() function. By itself it is quite weak. However when combined with
|
||||
* other sources it does provide significant benefit.
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
class MTRand extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* Return an instance of Strength indicating the strength of the source
|
||||
*
|
||||
* @return \SecurityLib\Strength An instance of one of the strength classes
|
||||
*/
|
||||
public static function getStrength()
|
||||
{
|
||||
// Detect if Suhosin Hardened PHP patch is applied
|
||||
if (defined('S_ALL')) {
|
||||
return new Strength(Strength::LOW);
|
||||
} else {
|
||||
return new Strength(Strength::VERYLOW);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
$result = '';
|
||||
for ($i = 0; $i < $size; $i++) {
|
||||
$result .= chr((mt_rand() ^ mt_rand()) % 256);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
130
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/MicroTime.php
vendored
Normal file
130
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/MicroTime.php
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The Microtime Random Number Source
|
||||
*
|
||||
* This uses the current micro-second (looped several times) for a **very** weak
|
||||
* random number source. This is only useful when combined with several other
|
||||
* stronger sources
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Util;
|
||||
/**
|
||||
* The Microtime Random Number Source
|
||||
*
|
||||
* This uses the current micro-second (looped several times) for a **very** weak
|
||||
* random number source. This is only useful when combined with several other
|
||||
* stronger sources
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
final class MicroTime extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* A static counter to ensure unique hashes and prevent state collisions
|
||||
*
|
||||
* @var int A counter
|
||||
*/
|
||||
private static $counter = null;
|
||||
/**
|
||||
* The current state of the random number generator.
|
||||
*
|
||||
* @var string The state of the PRNG
|
||||
*/
|
||||
private static $state = '';
|
||||
public function __construct()
|
||||
{
|
||||
$state = self::$state;
|
||||
if (function_exists('posix_times')) {
|
||||
$state .= serialize(posix_times());
|
||||
}
|
||||
if (!defined('HHVM_VERSION') && function_exists('zend_thread_id')) {
|
||||
$state .= zend_thread_id();
|
||||
}
|
||||
if (function_exists('hphp_get_thread_id')) {
|
||||
$state .= hphp_get_thread_id();
|
||||
}
|
||||
$state .= getmypid() . memory_get_usage();
|
||||
$state .= serialize($_ENV);
|
||||
$state .= serialize($_SERVER);
|
||||
$state .= count(debug_backtrace(\false));
|
||||
self::$state = hash('sha512', $state, \true);
|
||||
if (is_null(self::$counter)) {
|
||||
list(, self::$counter) = unpack("i", Util::safeSubstr(self::$state, 0, 4));
|
||||
$seed = $this->generate(Util::safeStrlen(dechex(\PHP_INT_MAX)));
|
||||
list(, self::$counter) = unpack("i", $seed);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
$result = '';
|
||||
/** @var string $seed */
|
||||
$seed = (string) \microtime() . \memory_get_usage();
|
||||
self::$state = hash('sha512', self::$state . $seed, \true);
|
||||
/**
|
||||
* Make the generated randomness a bit better by forcing a GC run which
|
||||
* should complete in a indeterminate amount of time, hence improving
|
||||
* the strength of the randomness a bit. It's still not crypto-safe,
|
||||
* but at least it's more difficult to predict.
|
||||
*/
|
||||
gc_collect_cycles();
|
||||
for ($i = 0; $i < $size; $i += 8) {
|
||||
$seed = self::$state . (string) \microtime() . (string) \pack('Ni', $i, self::counter());
|
||||
self::$state = \hash('sha512', $seed, \true);
|
||||
/**
|
||||
* We only use the first 8 bytes here to prevent exposing the state
|
||||
* in its entirety, which could potentially expose other random
|
||||
* generations in the future (in the same process)...
|
||||
*/
|
||||
$result .= Util::safeSubstr(self::$state, 0, 8);
|
||||
}
|
||||
return Util::safeSubstr($result, 0, $size);
|
||||
}
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
private static function counter()
|
||||
{
|
||||
if (self::$counter >= \PHP_INT_MAX) {
|
||||
self::$counter = -1 * \PHP_INT_MAX - 1;
|
||||
} else {
|
||||
self::$counter++;
|
||||
}
|
||||
return self::$counter;
|
||||
}
|
||||
}
|
||||
115
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/OpenSSL.php
vendored
Normal file
115
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/OpenSSL.php
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The OpenSSL Random Number Source
|
||||
*
|
||||
* This uses the OS's secure generator to generate high strength numbers
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Strength;
|
||||
/**
|
||||
* The OpenSSL Random Number Source
|
||||
*
|
||||
* This uses the OS's secure generator to generate high strength numbers
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
class OpenSSL extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* Return an instance of Strength indicating the strength of the source
|
||||
*
|
||||
* PIE notes: Userland PRNGs are not high strength. OpenSSL is, at best, medium.
|
||||
*
|
||||
* @return \SecurityLib\Strength An instance of one of the strength classes
|
||||
*/
|
||||
public static function getStrength()
|
||||
{
|
||||
/**
|
||||
* Prior to PHP 5.6.12 (see https://bugs.php.net/bug.php?id=70014) the "openssl_random_pseudo_bytes"
|
||||
* was using "RAND_pseudo_bytes" (predictable) instead of "RAND_bytes" (unpredictable).
|
||||
* Release notes: http://php.net/ChangeLog-5.php#5.6.12
|
||||
*/
|
||||
if (\PHP_VERSION_ID >= 50612) {
|
||||
return new Strength(Strength::MEDIUM);
|
||||
}
|
||||
/**
|
||||
* Prior to PHP 5.5.28 (see https://bugs.php.net/bug.php?id=70014) the "openssl_random_pseudo_bytes"
|
||||
* was using "RAND_pseudo_bytes" (predictable) instead of "RAND_bytes" (unpredictable).
|
||||
* Release notes: http://php.net/ChangeLog-5.php#5.5.28
|
||||
*/
|
||||
if (\PHP_VERSION_ID >= 50528 && \PHP_VERSION_ID < 50600) {
|
||||
return new Strength(Strength::MEDIUM);
|
||||
}
|
||||
/**
|
||||
* Prior to PHP 5.4.44 (see https://bugs.php.net/bug.php?id=70014) the "openssl_random_pseudo_bytes"
|
||||
* was using "RAND_pseudo_bytes" (predictable) instead of "RAND_bytes" (unpredictable).
|
||||
* Release notes: http://php.net/ChangeLog-5.php#5.4.44
|
||||
*/
|
||||
if (\PHP_VERSION_ID >= 50444 && \PHP_VERSION_ID < 50500) {
|
||||
return new Strength(Strength::MEDIUM);
|
||||
}
|
||||
return new Strength(Strength::LOW);
|
||||
}
|
||||
/**
|
||||
* If the source is currently available.
|
||||
* Reasons might be because the library is not installed
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isSupported()
|
||||
{
|
||||
return \is_callable('openssl_random_pseudo_bytes');
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
if ($size < 1) {
|
||||
return str_repeat(chr(0), $size);
|
||||
}
|
||||
/**
|
||||
* PIE notes: This $crypto_string argument doesn't do what people think
|
||||
* it does. Original comment follows.
|
||||
*
|
||||
* Note, normally we would check the return of of $crypto_strong to
|
||||
* ensure that we generated a good random string. However, since we're
|
||||
* using this as one part of many sources a low strength random number
|
||||
* shouldn't be much of an issue.
|
||||
*/
|
||||
return openssl_random_pseudo_bytes($size);
|
||||
}
|
||||
}
|
||||
78
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/Rand.php
vendored
Normal file
78
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/Rand.php
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The Rand Random Number Source
|
||||
*
|
||||
* This source generates low strength random numbers by using the internal
|
||||
* rand() function. By itself it is quite weak. However when combined with
|
||||
* other sources it does provide significant benefit.
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Strength;
|
||||
/**
|
||||
* The Rand Random Number Source
|
||||
*
|
||||
* This source generates low strength random numbers by using the internal
|
||||
* rand() function. By itself it is quite weak. However when combined with
|
||||
* other sources it does provide significant benefit.
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
class Rand extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* Return an instance of Strength indicating the strength of the source
|
||||
*
|
||||
* @return \SecurityLib\Strength An instance of one of the strength classes
|
||||
*/
|
||||
public static function getStrength()
|
||||
{
|
||||
// Detect if Suhosin Hardened PHP patch is applied
|
||||
if (defined('S_ALL')) {
|
||||
return new Strength(Strength::LOW);
|
||||
} else {
|
||||
return new Strength(Strength::VERYLOW);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
$result = '';
|
||||
for ($i = 0; $i < $size; $i++) {
|
||||
$result .= chr((rand() ^ rand()) % 256);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
79
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/RandomBytes.php
vendored
Normal file
79
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/RandomBytes.php
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The PHP7 Random Number Source
|
||||
*
|
||||
* This uses the inbuilt PHP7 Random Bytes function
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Strength;
|
||||
/**
|
||||
* The PHP7 Random Number Source
|
||||
*
|
||||
* This uses the php7 secure generator to generate high strength numbers
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
*/
|
||||
class RandomBytes extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* If the source is currently available.
|
||||
* Reasons might be because the library is not installed
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isSupported()
|
||||
{
|
||||
return \is_callable('random_bytes');
|
||||
}
|
||||
/**
|
||||
* Return an instance of Strength indicating the strength of the source
|
||||
*
|
||||
* @return Strength An instance of one of the strength classes
|
||||
*/
|
||||
public static function getStrength()
|
||||
{
|
||||
return new Strength(Strength::HIGH);
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
if (!self::isSupported()) {
|
||||
return \str_repeat(chr(0), $size);
|
||||
}
|
||||
return \random_bytes($size);
|
||||
}
|
||||
}
|
||||
103
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/Sodium.php
vendored
Normal file
103
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/Sodium.php
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The libsodium Random Number Source
|
||||
*
|
||||
* This uses the libsodium secure generator to generate high strength numbers
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Ben Ramsey <ben@benramsey.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*
|
||||
* @link https://paragonie.com/book/pecl-libsodium
|
||||
* @link http://pecl.php.net/package/libsodium
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Strength;
|
||||
/**
|
||||
* The libsodium Random Number Source
|
||||
*
|
||||
* This uses the libsodium secure generator to generate high strength numbers
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Ben Ramsey <ben@benramsey.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
*/
|
||||
class Sodium extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* A property that may be forcibly set to `false` in the constructor, for
|
||||
* the purpose of testing this source
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $hasLibsodium = \false;
|
||||
/**
|
||||
* Constructs a libsodium Random Number Source
|
||||
*
|
||||
* @param bool $useLibsodium May be set to `false` to disable libsodium for
|
||||
* testing purposes
|
||||
*/
|
||||
public function __construct($useLibsodium = \true)
|
||||
{
|
||||
if ($useLibsodium && extension_loaded('libsodium')) {
|
||||
$this->hasLibsodium = \true;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* If the source is currently available.
|
||||
* Reasons might be because the library is not installed
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isSupported()
|
||||
{
|
||||
return function_exists('Sodium\randombytes_buf');
|
||||
}
|
||||
/**
|
||||
* Return an instance of Strength indicating the strength of the source
|
||||
*
|
||||
* @return Strength An instance of one of the strength classes
|
||||
*/
|
||||
public static function getStrength()
|
||||
{
|
||||
return new Strength(Strength::HIGH);
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
if (!$this->hasLibsodium || $size < 1) {
|
||||
return str_repeat(chr(0), $size);
|
||||
}
|
||||
return (string) \Sodium\randombytes_buf($size);
|
||||
}
|
||||
}
|
||||
101
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/URandom.php
vendored
Normal file
101
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/URandom.php
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The URandom Random Number Source
|
||||
*
|
||||
* This uses the *nix /dev/urandom device to generate medium strength numbers
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Strength;
|
||||
/**
|
||||
* The URandom Random Number Source
|
||||
*
|
||||
* This uses the *nix /dev/urandom device to generate medium strength numbers
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @author Paragon Initiative Enterprises <security@paragonie.com>
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
class URandom extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* @var string The file to read from
|
||||
*/
|
||||
protected static $file = '/dev/urandom';
|
||||
/**
|
||||
* Return an instance of Strength indicating the strength of the source
|
||||
*
|
||||
* @return \SecurityLib\Strength An instance of one of the strength classes
|
||||
*/
|
||||
public static function getStrength()
|
||||
{
|
||||
return new Strength(Strength::HIGH);
|
||||
}
|
||||
/**
|
||||
* If the source is currently available.
|
||||
* Reasons might be because the library is not installed
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isSupported()
|
||||
{
|
||||
return (bool) @\file_exists(static::$file);
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
if ($size == 0) {
|
||||
return static::emptyValue($size);
|
||||
}
|
||||
$file = \fopen(static::$file, 'rb');
|
||||
if (!\is_resource($file)) {
|
||||
/** @var string $result */
|
||||
$result = static::emptyValue($size);
|
||||
return $result;
|
||||
}
|
||||
if (\is_callable('stream_set_read_buffer')) {
|
||||
\stream_set_read_buffer($file, 0);
|
||||
}
|
||||
/** @var string $result */
|
||||
$result = \fread($file, $size);
|
||||
if (!\is_string($result)) {
|
||||
/** @var string $result */
|
||||
$result = static::emptyValue($size);
|
||||
return $result;
|
||||
}
|
||||
\fclose($file);
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
72
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/UniqID.php
vendored
Normal file
72
modules/pshowsso/vendor/paragonie/random-lib/lib/RandomLib/Source/UniqID.php
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* The RandomLib library for securely generating random numbers and strings in PHP
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
/**
|
||||
* The UniqID Random Number Source
|
||||
*
|
||||
* This uses the internal `uniqid()` function to generate low strength random
|
||||
* numbers.
|
||||
*
|
||||
* PHP version 5.3
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @copyright 2011 The Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*
|
||||
* @version Build @@version@@
|
||||
*/
|
||||
namespace RandomLib\Source;
|
||||
|
||||
use SecurityLib\Strength;
|
||||
use SecurityLib\Util;
|
||||
/**
|
||||
* The UniqID Random Number Source
|
||||
*
|
||||
* This uses the internal `uniqid()` function to generate low strength random
|
||||
* numbers.
|
||||
*
|
||||
* @category PHPCryptLib
|
||||
* @package Random
|
||||
* @subpackage Source
|
||||
*
|
||||
* @author Anthony Ferrara <ircmaxell@ircmaxell.com>
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
class UniqID extends \RandomLib\AbstractSource
|
||||
{
|
||||
/**
|
||||
* Return an instance of Strength indicating the strength of the source
|
||||
*
|
||||
* @return \SecurityLib\Strength An instance of one of the strength classes
|
||||
*/
|
||||
public static function getStrength()
|
||||
{
|
||||
return new Strength(Strength::LOW);
|
||||
}
|
||||
/**
|
||||
* Generate a random string of the specified size
|
||||
*
|
||||
* @param int $size The size of the requested random string
|
||||
*
|
||||
* @return string A string of the requested size
|
||||
*/
|
||||
public function generate($size)
|
||||
{
|
||||
$result = '';
|
||||
while (Util::safeStrlen($result) < $size) {
|
||||
$result = uniqid($result, \true);
|
||||
}
|
||||
return Util::safeSubstr($result, 0, $size);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user