private bool IsProbablePrime(BigInteger x, int iterations) { /* * Primes class for FIPS 186-4 C.3 primality checking */ return(!Primes.HasAnySmallFactors(x) && Primes.IsMRProbablePrime(x, random, iterations)); }
protected bool isProbablePrime(BigInteger x) { /* * Primes class for FIPS 186-4 C.3 primality checking */ return(!Primes.HasAnySmallFactors(x) && Primes.IsMRProbablePrime(x, param.Random, iterations)); }
public void ShouldReturnPrimeWithGenerator(int keySize) { var parameters = mapper.GetParametersByKeySize(keySize); //Single iteration is enough; the content is prime unless altered by formatting. Assert.IsTrue(Primes.IsMRProbablePrime(parameters.Prime, random, 1)); Assert.AreEqual(keySize, parameters.Prime.BitLength); Assert.AreEqual(2, parameters.Generator.IntValue); }
public void TestMRProbablePrime() { int mrIterations = (PRIME_CERTAINTY + 1) / 2; for (int iterations = 0; iterations < ITERATIONS; ++iterations) { BigInteger prime = RandomPrime(); Assert.True(Primes.IsMRProbablePrime(prime, R, mrIterations)); BigInteger nonPrime = RandomPrime().Multiply(prime); Assert.False(Primes.IsMRProbablePrime(nonPrime, R, mrIterations)); } }