Added SILC Thread Queue API
[silc.git] / lib / silcmath / silcmath.h
index 9096d4bc78e6768e8dc2d6ca06e92b3cf484ccad..c3e09b470c0c4ac696ff1c6b251fe9a8e50e1868 100644 (file)
@@ -1,16 +1,15 @@
 /*
 
   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
@@ -18,7 +17,7 @@
 
 */
 
-/****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
  *
@@ -58,10 +62,10 @@ bool silc_math_gen_prime(SilcMPInt *prime, uint32 bits, bool verbose);
  *
  * 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