X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/0a5d0bc7225e8abcab0519447a82d87c6d05884a..4ab1268f3ec850a115a68966325aced4f08ec603:/rc4.c diff --git a/rc4.c b/rc4.c index b1e9d67..a4e595f 100644 --- a/rc4.c +++ b/rc4.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: rc4.c,v 1.2 1999/12/10 23:27:35 mdw Exp $ + * $Id: rc4.c,v 1.3 1999/12/13 15:34:01 mdw Exp $ * * The alleged RC4 stream cipher * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: rc4.c,v $ + * Revision 1.3 1999/12/13 15:34:01 mdw + * Add support for seeding from a generic pseudorandom source. + * * Revision 1.2 1999/12/10 23:27:35 mdw * Generic cipher and RNG interfaces. * @@ -184,6 +187,7 @@ static int grmisc(grand *r, unsigned op, ...) case GRAND_SEEDINT: case GRAND_SEEDUINT32: case GRAND_SEEDBLOCK: + case GRAND_SEEDRAND: rc = 1; break; default: @@ -204,6 +208,15 @@ static int grmisc(grand *r, unsigned op, ...) size_t sz = va_arg(ap, size_t); rc4_init(&g->rc4, p, sz); } break; + case GRAND_SEEDRAND: { + grand *rr = va_arg(ap, grand *); + octet buf[16]; + rr->ops->fill(rr, buf, sizeof(buf)); + rc4_init(&g->rc4, buf, sizeof(buf)); + } break; + default: + GRAND_BADOP; + break; } va_end(ap);