diff --git a/utils/Makefile b/utils/Makefile index 71db96e8..95cd9434 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -1,4 +1,4 @@ -CFLAGS := -Wall -O2 -Werror -D_FILE_OFFSET_BITS=64 -g -mrdrnd -msse4.2 \ +CFLAGS := -Wall -O2 -Werror -D_FILE_OFFSET_BITS=64 -g -msse4.2 \ -fno-strict-aliasing BIN := src/scoutfs @@ -21,7 +21,7 @@ endif $(BIN): $(OBJ) $(QU) [BIN $@] - $(VE)gcc -o $@ $^ -luuid -lm + $(VE)gcc -o $@ $^ -luuid -lm -lcrypto %.o %.d: %.c Makefile sparse.sh $(QU) [CC $<] diff --git a/utils/src/rand.c b/utils/src/rand.c index 6305d660..e5444810 100644 --- a/utils/src/rand.c +++ b/utils/src/rand.c @@ -4,27 +4,9 @@ #include "sparse.h" #include "util.h" +#include + void pseudo_random_bytes(void *data, unsigned int len) { - unsigned long long tmp; - unsigned long long *ll = data; - unsigned int sz = sizeof(*ll); - unsigned int unaligned; - - /* see if the initial buffer is unaligned */ - unaligned = min((unsigned long)data & (sz - 1), len); - if (unaligned) { - __builtin_ia32_rdrand64_step(&tmp); - memcpy(data, &tmp, unaligned); - data += unaligned; - len -= unaligned; - } - - for (ll = data; len >= sz; ll++, len -= sz) - __builtin_ia32_rdrand64_step(ll); - - if (len) { - __builtin_ia32_rdrand64_step(&tmp); - memcpy(ll, &tmp, len); - } + RAND_pseudo_bytes(data, len); }