1<?php 2 3/** 4 * Built-In BCMath 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\BCMath; 17 18use phpseclib3\Math\BigInteger\Engines\BCMath; 19 20/** 21 * Built-In BCMath Modular Exponentiation Engine 22 * 23 * @package BCMath 24 * @author Jim Wigginton <terrafrost@php.net> 25 * @access public 26 */ 27abstract class BuiltIn extends BCMath 28{ 29 /** 30 * Performs modular exponentiation. 31 * 32 * @param BCMath $x 33 * @param BCMath $e 34 * @param BCMath $n 35 * @return BCMath 36 */ 37 protected static function powModHelper(BCMath $x, BCMath $e, BCMath $n) 38 { 39 $temp = new BCMath(); 40 $temp->value = bcpowmod($x->value, $e->value, $n->value); 41 42 return $x->normalize($temp); 43 } 44} 45