/home/techb158/immovalet.com/vendor/phpseclib/phpseclib/phpseclib/Math
NameSizeModeActions
BigInteger/-0755rm
BinaryField/-0755rm
Common/-0755rm
PrimeField/-0755rm
BigInteger.php214520644editdlrm
BinaryField.php51620644editdlrm
PrimeField.php26130644editdlrm
Edit: /home/techb158/immovalet.com/vendor/phpseclib/phpseclib/phpseclib/Math/PrimeField.php (2613B)
* @copyright 2017 Jim Wigginton * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://pear.php.net/package/Math_BigInteger */ namespace phpseclib3\Math; use phpseclib3\Math\Common\FiniteField; use phpseclib3\Math\PrimeField\Integer; /** * Prime Finite Fields * * @package Math * @author Jim Wigginton * @access public */ class PrimeField extends FiniteField { /** * Instance Counter * * @var int */ private static $instanceCounter = 0; /** * Keeps track of current instance * * @var int */ protected $instanceID; /** * Default constructor */ public function __construct(BigInteger $modulo) { //if (!$modulo->isPrime()) { // throw new \UnexpectedValueException('PrimeField requires a prime number be passed to the constructor'); //} $this->modulo = $modulo; $this->instanceID = self::$instanceCounter++; Integer::setModulo($this->instanceID, $modulo); Integer::setRecurringModuloFunction($this->instanceID, $modulo->createRecurringModuloFunction()); } /** * Use a custom defined modular reduction function */ public function setReduction(callable $func) { $this->reduce = $func->bindTo($this, $this); } /** * Returns an instance of a dynamically generated PrimeFieldInteger class * * @return object */ public function newInteger(BigInteger $num) { return new Integer($this->instanceID, $num); } /** * Returns an integer on the finite field between one and the prime modulo * * @return object */ public function randomInteger() { static $one; if (!isset($one)) { $one = new BigInteger(1); } return new Integer($this->instanceID, BigInteger::randomRange($one, Integer::getModulo($this->instanceID))); } /** * Returns the length of the modulo in bytes * * @return integer */ public function getLengthInBytes() { return Integer::getModulo($this->instanceID)->getLengthInBytes(); } /** * Returns the length of the modulo in bits * * @return integer */ public function getLength() { return Integer::getModulo($this->instanceID)->getLength(); } }