#pragma once #include #include #include "bigint.h" extern std::vector smallprimes; void fillsmallprimes(); //for use in RSA (pass target number of bits of N) std::pair genprimepair(int nbits); //finds random in range [low,high]; throws range_error("No primes") if no prime found //Will call fillsmallprimes() if not yet done Bigint randprime(const Bigint &low,const Bigint &high); //checks Fermat [pseudo- or actual] primality bool strongPseudoPrime2(const Bigint &n); //checks Lucas [pseudo- or actual] primality bool strongLucasPrime(const Bigint &n,int D,int P,int Q); //checks primality bool bailliePSW(const Bigint &n);