projects
/
u
/
mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
New multiprecision integer arithmetic suite.
[u/mdw/catacomb]
/
rand.c
diff --git
a/rand.c
b/rand.c
index
036ba4d
..
9aea479
100644
(file)
--- a/
rand.c
+++ b/
rand.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: rand.c,v 1.
1 1999/09/03 08:41:12
mdw Exp $
+ * $Id: rand.c,v 1.
2 1999/10/12 21:00:15
mdw Exp $
*
* Secure random number generator
*
*
* Secure random number generator
*
@@
-30,6
+30,9
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: rand.c,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: rand.c,v $
+ * Revision 1.2 1999/10/12 21:00:15 mdw
+ * Make pool and buffer sizes more sensible.
+ *
* Revision 1.1 1999/09/03 08:41:12 mdw
* Initial import.
*
* Revision 1.1 1999/09/03 08:41:12 mdw
* Initial import.
*
@@
-151,23
+154,24
@@
void rand_key(rand_pool *r, const void *k, size_t sz)
void rand_add(rand_pool *r, const void *p, size_t sz, unsigned goodbits)
{
const octet *c = p;
void rand_add(rand_pool *r, const void *p, size_t sz, unsigned goodbits)
{
const octet *c = p;
- int i, rot
, mid
;
+ int i, rot;
-#if RAND_POOLSZ != 12
79
+#if RAND_POOLSZ != 12
8
# error Polynomial in rand_add is out of date. Fix it.
#endif
RAND_RESOLVE(r);
# error Polynomial in rand_add is out of date. Fix it.
#endif
RAND_RESOLVE(r);
- i = r->i; rot = r->irot; mid = i + 418;
- if (mid >= RAND_POOLSZ) mid -= RAND_POOLSZ;
+ i = r->i; rot = r->irot;
while (sz) {
octet o = *c++;
while (sz) {
octet o = *c++;
- r->pool[i] ^= (ROL8(o, rot) ^ r->pool[mid]);
+ r->pool[i] ^= (ROL8(o, rot) ^
+ r->pool[(i + 1) % RAND_POOLSZ] ^
+ r->pool[(i + 2) % RAND_POOLSZ] ^
+ r->pool[(i + 7) % RAND_POOLSZ]);
rot = (rot + 5) & 7;
i++; if (i >= RAND_POOLSZ) i -= RAND_POOLSZ;
rot = (rot + 5) & 7;
i++; if (i >= RAND_POOLSZ) i -= RAND_POOLSZ;
- mid++; if (mid >= RAND_POOLSZ) mid -= RAND_POOLSZ;
sz--;
}
sz--;
}