6#ifndef CRYPTOPP_NBTHEORY_H 
    7#define CRYPTOPP_NBTHEORY_H 
  120    const PrimeSelector *GetSelectorPointer()
 const {
return this;}
 
  121    virtual bool IsAcceptable(
const Integer &candidate) 
const =0;
 
 
  170    {
return a.InverseMod(b);}
 
 
  212    {
return a_times_b_mod_c(x, y, m);}
 
 
  220    {
return a_exp_b_mod_c(x, e, m);}
 
 
  281        {Generate(delta, rng, pbits, pbits-1);}
 
 
  292        {Generate(delta, rng, pbits, qbits);}
 
 
 
Classes for working with NameValuePairs.
 
An object that implements NameValuePairs.
 
Multiple precision integer with arithmetic operations.
 
static Integer Gcd(const Integer &a, const Integer &n)
Calculate greatest common divisor.
 
static const Integer & One()
Integer representing 1.
 
Generator of prime numbers of special forms.
 
const Integer & SubPrime() const
Retrieve second prime.
 
PrimeAndGenerator(signed int delta, RandomNumberGenerator &rng, unsigned int pbits)
Construct a PrimeAndGenerator.
 
PrimeAndGenerator()
Construct a PrimeAndGenerator.
 
const Integer & Generator() const
Retrieve the generator.
 
void Generate(signed int delta, RandomNumberGenerator &rng, unsigned int pbits, unsigned qbits)
Generate a Prime and Generator.
 
const Integer & Prime() const
Retrieve first prime.
 
PrimeAndGenerator(signed int delta, RandomNumberGenerator &rng, unsigned int pbits, unsigned qbits)
Construct a PrimeAndGenerator.
 
Application callback to signal suitability of a cabdidate prime.
 
Interface for random number generators.
 
#define CRYPTOPP_API
Win32 calling convention.
 
unsigned short word16
16-bit unsigned datatype
 
Abstract base classes that provide a uniform interface to this library.
 
Multiple precision integer with arithmetic operations.
 
Crypto++ library namespace.
 
CRYPTOPP_DLL int Jacobi(const Integer &a, const Integer &b)
Calculate the Jacobi symbol.
 
CRYPTOPP_DLL bool IsPrime(const Integer &p)
Verifies a number is probably prime.
 
bool RelativelyPrime(const Integer &a, const Integer &b)
Determine relative primality.
 
Integer ModularMultiplication(const Integer &x, const Integer &y, const Integer &m)
Modular multiplication.
 
CRYPTOPP_DLL const word16 * GetPrimeTable(unsigned int &size)
The Small Prime table.
 
CRYPTOPP_DLL Integer MihailescuProvablePrime(RandomNumberGenerator &rng, unsigned int bits)
Generates a provable prime.
 
CRYPTOPP_DLL bool IsStrongLucasProbablePrime(const Integer &n)
Determine if a number is probably prime.
 
CRYPTOPP_DLL unsigned int DiscreteLogWorkFactor(unsigned int bitlength)
Estimate work factor.
 
Integer ModularExponentiation(const Integer &x, const Integer &e, const Integer &m)
Modular exponentiation.
 
CRYPTOPP_DLL Integer ModularSquareRoot(const Integer &a, const Integer &p)
Extract a modular square root.
 
CRYPTOPP_DLL bool IsSmallPrime(const Integer &p)
Tests whether a number is a small prime.
 
CRYPTOPP_DLL bool SolveModularQuadraticEquation(Integer &r1, Integer &r2, const Integer &a, const Integer &b, const Integer &c, const Integer &p)
Solve a Modular Quadratic Equation.
 
CRYPTOPP_DLL bool RabinMillerTest(RandomNumberGenerator &rng, const Integer &n, unsigned int rounds)
Determine if a number is probably prime.
 
CRYPTOPP_DLL Integer MaurerProvablePrime(RandomNumberGenerator &rng, unsigned int bits)
Generates a provable prime.
 
CRYPTOPP_DLL Integer Lucas(const Integer &e, const Integer &p, const Integer &n)
Calculate the Lucas value.
 
CRYPTOPP_DLL Integer InverseLucas(const Integer &e, const Integer &m, const Integer &p, const Integer &q, const Integer &u)
Calculate the inverse Lucas value.
 
CRYPTOPP_DLL bool VerifyPrime(RandomNumberGenerator &rng, const Integer &p, unsigned int level=1)
Verifies a number is probably prime.
 
CRYPTOPP_DLL Integer ModularRoot(const Integer &a, const Integer &dp, const Integer &dq, const Integer &p, const Integer &q, const Integer &u)
Extract a modular root.
 
Integer EuclideanMultiplicativeInverse(const Integer &a, const Integer &b)
Calculate multiplicative inverse.
 
CRYPTOPP_DLL bool SmallDivisorsTest(const Integer &p)
Tests whether a number is divisible by a small prime.
 
CRYPTOPP_DLL bool IsLucasProbablePrime(const Integer &n)
Determine if a number is probably prime.
 
Integer GCD(const Integer &a, const Integer &b)
Calculate the greatest common divisor.
 
CRYPTOPP_DLL bool TrialDivision(const Integer &p, unsigned bound)
Tests whether a number is divisible by a small prime.
 
CRYPTOPP_DLL unsigned int FactoringWorkFactor(unsigned int bitlength)
Estimate work factor.
 
CRYPTOPP_DLL bool IsFermatProbablePrime(const Integer &n, const Integer &b)
Determine if a number is probably prime.
 
Integer LCM(const Integer &a, const Integer &b)
Calculate the least common multiple.
 
CRYPTOPP_DLL Integer CRT(const Integer &xp, const Integer &p, const Integer &xq, const Integer &q, const Integer &u)
Chinese Remainder Theorem.
 
CRYPTOPP_DLL bool IsStrongProbablePrime(const Integer &n, const Integer &b)
Determine if a number is probably prime.
 
CRYPTOPP_DLL bool FirstPrime(Integer &p, const Integer &max, const Integer &equiv, const Integer &mod, const PrimeSelector *pSelector)
Finds a random prime of special form.