summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/arc4random/getentropy_aix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/arc4random/getentropy_aix.c')
-rw-r--r--src/lib/libcrypto/arc4random/getentropy_aix.c33
1 files changed, 5 insertions, 28 deletions
diff --git a/src/lib/libcrypto/arc4random/getentropy_aix.c b/src/lib/libcrypto/arc4random/getentropy_aix.c
index ff48ae7071..bd8818f264 100644
--- a/src/lib/libcrypto/arc4random/getentropy_aix.c
+++ b/src/lib/libcrypto/arc4random/getentropy_aix.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: getentropy_aix.c,v 1.5 2016/08/07 03:27:21 tb Exp $ */ 1/* $OpenBSD: getentropy_aix.c,v 1.6 2018/11/20 08:04:28 deraadt Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2015 Michael Felt <aixtools@gmail.com> 4 * Copyright (c) 2015 Michael Felt <aixtools@gmail.com>
@@ -60,7 +60,6 @@
60 60
61int getentropy(void *buf, size_t len); 61int getentropy(void *buf, size_t len);
62 62
63static int gotdata(char *buf, size_t len);
64static int getentropy_urandom(void *buf, size_t len, const char *path, 63static int getentropy_urandom(void *buf, size_t len, const char *path,
65 int devfscheck); 64 int devfscheck);
66static int getentropy_fallback(void *buf, size_t len); 65static int getentropy_fallback(void *buf, size_t len);
@@ -118,22 +117,6 @@ getentropy(void *buf, size_t len)
118 return (ret); 117 return (ret);
119} 118}
120 119
121/*
122 * Basic sanity checking; wish we could do better.
123 */
124static int
125gotdata(char *buf, size_t len)
126{
127 char any_set = 0;
128 size_t i;
129
130 for (i = 0; i < len; ++i)
131 any_set |= buf[i];
132 if (any_set == 0)
133 return (-1);
134 return (0);
135}
136
137static int 120static int
138getentropy_urandom(void *buf, size_t len, const char *path, int devfscheck) 121getentropy_urandom(void *buf, size_t len, const char *path, int devfscheck)
139{ 122{
@@ -179,10 +162,8 @@ start:
179 i += ret; 162 i += ret;
180 } 163 }
181 close(fd); 164 close(fd);
182 if (gotdata(buf, len) == 0) { 165 errno = save_errno;
183 errno = save_errno; 166 return (0); /* satisfied */
184 return (0); /* satisfied */
185 }
186nodevrandom: 167nodevrandom:
187 errno = EIO; 168 errno = EIO;
188 return (-1); 169 return (-1);
@@ -416,10 +397,6 @@ getentropy_fallback(void *buf, size_t len)
416 } 397 }
417 explicit_bzero(&ctx, sizeof ctx); 398 explicit_bzero(&ctx, sizeof ctx);
418 explicit_bzero(results, sizeof results); 399 explicit_bzero(results, sizeof results);
419 if (gotdata(buf, len) == 0) { 400 errno = save_errno;
420 errno = save_errno; 401 return (0); /* satisfied */
421 return (0); /* satisfied */
422 }
423 errno = EIO;
424 return (-1);
425} 402}