Module Name: src
Committed By: dsl
Date: Sun Jul 29 14:44:14 UTC 2012
Modified Files:
src/lib/libc/gen: arc4random.c
Log Message:
Make this compile with the compiler I'm using.
Move variable defs to top of function.
Don't use const static mib[] - run time initialisation won't matter,
and not using static data may actually help in a .so.
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/lib/libc/gen/arc4random.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/gen/arc4random.c
diff -u src/lib/libc/gen/arc4random.c:1.13 src/lib/libc/gen/arc4random.c:1.14
--- src/lib/libc/gen/arc4random.c:1.13 Mon Mar 5 19:40:08 2012
+++ src/lib/libc/gen/arc4random.c Sun Jul 29 14:44:13 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: arc4random.c,v 1.13 2012/03/05 19:40:08 christos Exp $ */
+/* $NetBSD: arc4random.c,v 1.14 2012/07/29 14:44:13 dsl Exp $ */
/* $OpenBSD: arc4random.c,v 1.6 2001/06/05 05:05:38 pvalchev Exp $ */
/*
@@ -27,7 +27,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: arc4random.c,v 1.13 2012/03/05 19:40:08 christos Exp $");
+__RCSID("$NetBSD: arc4random.c,v 1.14 2012/07/29 14:44:13 dsl Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -65,7 +65,8 @@ static inline uint32_t arc4_getword(stru
static inline void
arc4_init(struct arc4_stream *as)
{
- for (int n = 0; n < RSIZE; n++)
+ int n;
+ for (n = 0; n < RSIZE; n++)
as->s[n] = n;
as->i = 0;
as->j = 0;
@@ -78,9 +79,10 @@ static inline void
arc4_addrandom(struct arc4_stream *as, u_char *dat, int datlen)
{
uint8_t si;
+ int n;
as->i--;
- for (int n = 0; n < RSIZE; n++) {
+ for (n = 0; n < RSIZE; n++) {
as->i = (as->i + 1);
si = as->s[as->i];
as->j = (as->j + si + dat[n % datlen]);
@@ -94,8 +96,9 @@ static void
arc4_stir(struct arc4_stream *as)
{
int rdat[32];
- static const int mib[] = { CTL_KERN, KERN_URND };
+ int mib[] = { CTL_KERN, KERN_URND };
size_t len;
+ size_t i, j;
/*
* This code once opened and read /dev/urandom on each
@@ -106,7 +109,7 @@ arc4_stir(struct arc4_stream *as)
* for us but much friendlier to other entropy consumers.
*/
- for (size_t i = 0; i < __arraycount(rdat); i++) {
+ for (i = 0; i < __arraycount(rdat); i++) {
len = sizeof(rdat[i]);
if (sysctl(mib, 2, &rdat[i], &len, NULL, 0) == -1)
abort();
@@ -119,7 +122,7 @@ arc4_stir(struct arc4_stream *as)
* paper "Weaknesses in the Key Scheduling Algorithm of RC4"
* by Fluher, Mantin, and Shamir. (N = 256 in our case.)
*/
- for (size_t j = 0; j < RSIZE * 4; j++)
+ for (j = 0; j < RSIZE * 4; j++)
arc4_getbyte(as);
}