mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-12-27 11:52:48 +00:00
Merge branch '2.0' into 3.0
This commit is contained in:
commit
0358eb163c
@ -786,6 +786,11 @@ abstract class Engine implements \JsonSerializable
|
||||
$min = $temp;
|
||||
}
|
||||
|
||||
$length = $max->getLength();
|
||||
if ($length > 8196) {
|
||||
throw new \RuntimeException("Generation of random prime numbers larger than 8196 has been disabled ($length)");
|
||||
}
|
||||
|
||||
$x = static::randomRange($min, $max);
|
||||
|
||||
return static::randomRangePrimeInner($x, $min, $max);
|
||||
@ -990,6 +995,15 @@ abstract class Engine implements \JsonSerializable
|
||||
*/
|
||||
public function isPrime($t = false)
|
||||
{
|
||||
// OpenSSL limits RSA keys to 16384 bits. The length of an RSA key is equal to the length of the modulo, which is
|
||||
// produced by multiplying the primes p and q by one another. The largest number two 8196 bit primes can produce is
|
||||
// a 16384 bit number so, basically, 8196 bit primes are the largest OpenSSL will generate and if that's the largest
|
||||
// that it'll generate it also stands to reason that that's the largest you'll be able to test primality on
|
||||
$length = $this->getLength();
|
||||
if ($length > 8196) {
|
||||
throw new \RuntimeException("Primality testing is not supported for numbers larger than 8196 bits ($length)");
|
||||
}
|
||||
|
||||
if (!$t) {
|
||||
$t = $this->setupIsPrime();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user