1<?php 2 3/** 4 * PHP Classic Modular Exponentiation Engine 5 * 6 * PHP version 5 and 7 7 * 8 * @category Math 9 * @package BigInteger 10 * @author Jim Wigginton <terrafrost@php.net> 11 * @copyright 2017 Jim Wigginton 12 * @license http://www.opensource.org/licenses/mit-license.html MIT License 13 * @link http://pear.php.net/package/Math_BigInteger 14 */ 15 16namespace phpseclib3\Math\BigInteger\Engines\PHP\Reductions; 17 18use phpseclib3\Math\BigInteger\Engines\PHP\Base; 19 20/** 21 * PHP Classic Modular Exponentiation Engine 22 * 23 * @package PHP 24 * @author Jim Wigginton <terrafrost@php.net> 25 * @access public 26 */ 27abstract class Classic extends Base 28{ 29 /** 30 * Regular Division 31 * 32 * @param array $x 33 * @param array $n 34 * @param string $class 35 * @return array 36 */ 37 protected static function reduce(array $x, array $n, $class) 38 { 39 $lhs = new $class(); 40 $lhs->value = $x; 41 $rhs = new $class(); 42 $rhs->value = $n; 43 list(, $temp) = $lhs->divide($rhs); 44 return $temp->value; 45 } 46} 47