/*
silcmath.h
-
+
Author: Pekka Riikonen <priikone@silcnet.org>
-
- Copyright (C) 1997 - 2001 Pekka Riikonen
-
+
+ Copyright (C) 1997 - 2007 Pekka Riikonen
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
+ the Free Software Foundation; version 2 of the License.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*/
-/****h* silcmath/SilcMathAPI
+/****h* silcmath/SILC Math Interface
*
* DESCRIPTION
*
#ifndef SILCMATH_H
#define SILCMATH_H
+#include "silcrng.h"
+
/****f* silcmath/SilcMathAPI/silc_math_gen_prime
*
* SYNOPSIS
*
- * int silc_math_gen_prime(SilcMPInt *prime, uint32 bits, bool verbose);
+ * SilcBool silc_math_gen_prime(SilcMPInt *prime, SilcUInt32 bits,
+ * SilcBool verbose, SilcRng rng);
*
* DESCRIPTION
*
- * Find appropriate prime. It generates a number by taking random bytes.
- * It then tests the number that it's not divisible by any of the small
- * primes and then it performs Fermat's prime test. I thank Rieks Joosten
- * (r.joosten@pijnenburg.nl) for such a good help with prime tests.
+ * Find appropriate prime. It generates a number by taking random bytes.
+ * It then tests the number that it's not divisible by any of the small
+ * primes and then it performs Fermat's prime test.
*
* If argument verbose is TRUE this will display some status information
- * about the progress of generation.
+ * about the progress of generation. If the `rng' is NULL then global
+ * RNG is used, if non-NULL then `rng' is used to generate the random
+ * number number.
*
***/
-bool silc_math_gen_prime(SilcMPInt *prime, uint32 bits, bool verbose);
+SilcBool silc_math_gen_prime(SilcMPInt *prime, SilcUInt32 bits,
+ SilcBool verbose, SilcRng rng);
/****f* silcmath/SilcMathAPI/silc_math_prime_test
*
*
* DESCRIPTION
*
- * Performs primality testings for given number. Returns TRUE if the
+ * Performs primality testings for given number. Returns TRUE if the
* number is probably a prime.
*
***/
-bool silc_math_prime_test(SilcMPInt *p);
+SilcBool silc_math_prime_test(SilcMPInt *p);
#endif