General utilities cleanup. Add signature support to catcrypt. Throw in
[u/mdw/catacomb] / fibrand.c
index 44856e7..4196e98 100644 (file)
--- a/fibrand.c
+++ b/fibrand.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: fibrand.c,v 1.1 1999/12/10 23:15:27 mdw Exp $
+ * $Id: fibrand.c,v 1.5 2004/04/08 01:36:15 mdw Exp $
  *
  * Fibonacci generator
  *
  * MA 02111-1307, USA.
  */
 
-/*----- Revision history --------------------------------------------------* 
- *
- * $Log: fibrand.c,v $
- * Revision 1.1  1999/12/10 23:15:27  mdw
- * Noncryptographic random number generator.
- *
- */
-
 /*----- Header files ------------------------------------------------------*/
 
 #include <stdarg.h>
@@ -58,7 +50,7 @@
  * Returns:    Next output from generator.
  *
  * Use:                Steps the generator.  Returns
- *             %$x_{i - 24} + x_{i - 55} \bmod 2^{32}%$.
+ *             %$x_{i - 24} + x_{i - 55} \bmod 2^{32}$%.
  */
 
 uint32 fibrand_step(fibrand *f)
@@ -141,12 +133,12 @@ void fibrand_lcseed(fibrand *f, uint32 seed)
 uint32 fibrand_range(fibrand *f, uint32 m)
 {
   uint32 r = 0xffffffff - (0xffffffff % m);
-  uint x;
+  uint32 x;
 
   /* --- Now generate numbers until a good one comes along --- */
 
   do x = fibrand_step(f); while (x >= r);
-  return (x / (r / m));
+  return (x % m);
 }
 
 /*----- Generic interface -------------------------------------------------*/
@@ -231,7 +223,7 @@ static void gfill(grand *r, void *p, size_t sz)
 
 static const grand_ops gops = {
   "fibrand",
-  0,
+  0, 0,
   gmisc, gdestroy,
   gword, gbyte, gword, grange, gfill
 };