/* -*-c-*-
*
- * $Id: rand.c,v 1.3 1999/12/10 23:28:07 mdw Exp $
+ * $Id: rand.c,v 1.4 1999/12/13 15:34:28 mdw Exp $
*
* Secure random number generator
*
/*----- Revision history --------------------------------------------------*
*
* $Log: rand.c,v $
+ * Revision 1.4 1999/12/13 15:34:28 mdw
+ * Increase the entropy threshhold in rand_getgood.
+ *
* Revision 1.3 1999/12/10 23:28:07 mdw
* Bug fix: rand_getgood didn't update buffer pointer.
*
if (chunk * 8 > r->obits) {
if (chunk * 8 > r->ibits + r->obits)
- do r->s->getnoise(r); while (r->ibits + r->obits < 128);
+ do r->s->getnoise(r); while (r->ibits + r->obits < 256);
rand_gate(r);
if (chunk * 8 > r->obits)
chunk = r->obits / 8;
case GRAND_SEEDINT:
case GRAND_SEEDUINT32:
case GRAND_SEEDBLOCK:
+ case GRAND_SEEDRAND:
case RAND_GATE:
case RAND_STRETCH:
case RAND_KEY:
size_t sz = va_arg(ap, size_t);
rand_add(&g->p, p, sz, sz);
} break;
+ case GRAND_SEEDRAND: {
+ grand *rr = va_arg(ap, grand *);
+ octet buf[16];
+ rr->ops->fill(rr, buf, sizeof(buf));
+ rand_add(&g->p, buf, sizeof(buf), 8);
+ } break;
case RAND_GATE:
rand_gate(&g->p);
break;