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