mirror of
https://github.com/rfc1036/whois.git
synced 2026-05-03 06:51:09 +00:00
mkpasswd: use arc4random_buf where available
This commit is contained in:
parent
b207df0805
commit
4fa1cd69e4
9
config.h
9
config.h
@ -81,6 +81,15 @@
|
|||||||
# define RANDOM_DEVICE "/dev/urandom"
|
# define RANDOM_DEVICE "/dev/urandom"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* use arc4random_buf instead if it is available */
|
||||||
|
#if (defined __FreeBSD__ && __FreeBSD__ >= 9) || \
|
||||||
|
(defined __NetBSD__ && __NetBSD_Version__ >= 600000000) || \
|
||||||
|
(defined OpenBSD && OpenBSD >= 200805) || \
|
||||||
|
(defined __APPLE__ && defined __MACH__)
|
||||||
|
# define HAVE_ARC4RANDOM_BUF
|
||||||
|
# undef RANDOM_DEVICE
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_NLS
|
#ifdef ENABLE_NLS
|
||||||
# ifndef NLS_CAT_NAME
|
# ifndef NLS_CAT_NAME
|
||||||
# define NLS_CAT_NAME "whois"
|
# define NLS_CAT_NAME "whois"
|
||||||
|
|||||||
15
mkpasswd.c
15
mkpasswd.c
@ -383,20 +383,27 @@ void* get_random_bytes(const unsigned int count)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RANDOM_DEVICE
|
#if defined RANDOM_DEVICE || defined HAVE_ARC4RANDOM_BUF
|
||||||
|
|
||||||
void generate_salt(char *const buf, const unsigned int len)
|
void generate_salt(char *const buf, const unsigned int len)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
unsigned char *entropy;
|
||||||
|
|
||||||
|
#if defined HAVE_ARC4RANDOM_BUF
|
||||||
|
void *entropy = NOFAIL(malloc(len));
|
||||||
|
arc4random_buf(entropy, len);
|
||||||
|
#else
|
||||||
|
entropy = get_random_bytes(len);
|
||||||
|
#endif
|
||||||
|
|
||||||
unsigned char *entropy = get_random_bytes(len * sizeof(unsigned char));
|
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
buf[i] = valid_salts[entropy[i] % (sizeof valid_salts - 1)];
|
buf[i] = valid_salts[entropy[i] % (sizeof valid_salts - 1)];
|
||||||
buf[i] = '\0';
|
buf[i] = '\0';
|
||||||
free(entropy);
|
free(entropy);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* RANDOM_DEVICE */
|
#else /* RANDOM_DEVICE || HAVE_ARC4RANDOM_BUF */
|
||||||
|
|
||||||
void generate_salt(char *const buf, const unsigned int len)
|
void generate_salt(char *const buf, const unsigned int len)
|
||||||
{
|
{
|
||||||
@ -424,7 +431,7 @@ void generate_salt(char *const buf, const unsigned int len)
|
|||||||
buf[i] = '\0';
|
buf[i] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* RANDOM_DEVICE */
|
#endif /* RANDOM_DEVICE || HAVE_ARC4RANDOM_BUF */
|
||||||
|
|
||||||
void display_help(int error)
|
void display_help(int error)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user