From 0934134d2e367936d0d6d914b12f333accb98c50 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 23 Jun 2015 09:28:28 +0200 Subject: [PATCH] lib: Streamline genrand.c includes Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- lib/util/genrand.c | 7 +++++-- lib/util/genrand.h | 44 +++++++++++++++++++++++++++++++++++++++++ lib/util/genrand_util.c | 2 -- lib/util/samba_util.h | 22 +-------------------- lib/util/wscript_build | 2 +- 5 files changed, 51 insertions(+), 26 deletions(-) create mode 100644 lib/util/genrand.h diff --git a/lib/util/genrand.c b/lib/util/genrand.c index f11790740dc..4473433b5f7 100644 --- a/lib/util/genrand.c +++ b/lib/util/genrand.c @@ -19,10 +19,13 @@ along with this program. If not, see . */ -#include "includes.h" +#include "replace.h" #include "system/filesys.h" #include "../lib/crypto/crypto.h" -#include "system/locale.h" +#include "lib/util/genrand.h" +#include "lib/util/blocking.h" +#include "lib/util/time_basic.h" +#include "lib/util/byteorder.h" /** * @file diff --git a/lib/util/genrand.h b/lib/util/genrand.h new file mode 100644 index 00000000000..73ca601df2f --- /dev/null +++ b/lib/util/genrand.h @@ -0,0 +1,44 @@ +/* + Unix SMB/CIFS implementation. + + Functions to create reasonable random numbers for crypto use. + + Copyright (C) Jeremy Allison 2001 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + Copy any user given reseed data. +**/ + +void set_rand_reseed_callback(void (*fn)(void *, int *), void *userdata); + +/** + * Tell the random number generator it needs to reseed. + */ +void set_need_random_reseed(void); + +/** + Interface to the (hopefully) good crypto random number generator. + Will use our internal PRNG if more than 40 bytes of random generation + has been requested, otherwise tries to read from /dev/random +**/ +void generate_random_buffer(uint8_t *out, int len); + +/** + Interface to the (hopefully) good crypto random number generator. + Will always use /dev/urandom if available. +**/ +void generate_secret_buffer(uint8_t *out, int len); diff --git a/lib/util/genrand_util.c b/lib/util/genrand_util.c index af7aab6551d..fbd99989ac2 100644 --- a/lib/util/genrand_util.c +++ b/lib/util/genrand_util.c @@ -20,8 +20,6 @@ */ #include "includes.h" -#include "system/filesys.h" -#include "../lib/crypto/crypto.h" #include "system/locale.h" /** diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h index 1c974cd581e..496923c384d 100644 --- a/lib/util/samba_util.h +++ b/lib/util/samba_util.h @@ -87,28 +87,8 @@ _PUBLIC_ int sys_getnameinfo(const struct sockaddr *psa, int flags); /* The following definitions come from lib/util/genrand.c */ -/** - Copy any user given reseed data. -**/ -_PUBLIC_ void set_rand_reseed_callback(void (*fn)(void *, int *), void *); - -/** - * Tell the random number generator it needs to reseed. - */ -_PUBLIC_ void set_need_random_reseed(void); -/** - Interface to the (hopefully) good crypto random number generator. - Will use our internal PRNG if more than 40 bytes of random generation - has been requested, otherwise tries to read from /dev/random -**/ -_PUBLIC_ void generate_random_buffer(uint8_t *out, int len); - -/** - Interface to the (hopefully) good crypto random number generator. - Will always use /dev/urandom if available. -**/ -_PUBLIC_ void generate_secret_buffer(uint8_t *out, int len); +#include "lib/util/genrand.h" /** generate a single random uint32_t diff --git a/lib/util/wscript_build b/lib/util/wscript_build index ffd1098970c..b95108a1082 100755 --- a/lib/util/wscript_build +++ b/lib/util/wscript_build @@ -74,7 +74,7 @@ if not bld.env.SAMBA_UTIL_CORE_ONLY: deps='samba-util-core DYNCONFIG close-low-fd tini tiniparser', public_deps='talloc tevent execinfo pthread LIBCRYPTO charset util_setid systemd systemd-daemon', - public_headers='debug.h attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h samba_util.h string_wrappers.h idtree.h idtree_random.h blocking.h signal.h substitute.h fault.h', + public_headers='debug.h attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h samba_util.h string_wrappers.h idtree.h idtree_random.h blocking.h signal.h substitute.h fault.h genrand.h', header_path= [ ('dlinklist.h samba_util.h', '.'), ('*', 'util') ], local_include=False, vnum='0.0.1', -- 2.34.1