mirror of
https://github.com/clearml/dropbear
synced 2025-04-19 13:45:04 +00:00
add loadavg and entropy_avail as sources
This commit is contained in:
parent
1205fa68df
commit
26b07ccafc
19
random.c
19
random.c
@ -73,10 +73,10 @@ process_file(hash_state *hs, const char *filename,
|
|||||||
}
|
}
|
||||||
|
|
||||||
readcount = 0;
|
readcount = 0;
|
||||||
while (readcount < len)
|
while (len == 0 || readcount < len)
|
||||||
{
|
{
|
||||||
int readlen, wantread;
|
int readlen, wantread;
|
||||||
unsigned char readbuf[128];
|
unsigned char readbuf[2048];
|
||||||
if (!already_blocked)
|
if (!already_blocked)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@ -93,7 +93,14 @@ process_file(hash_state *hs, const char *filename,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wantread = MIN(sizeof(readbuf), len-readcount);
|
if (len == 0)
|
||||||
|
{
|
||||||
|
wantread = sizeof(readbuf);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wantread = MIN(sizeof(readbuf), len-readcount);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef DROPBEAR_PRNGD_SOCKET
|
#ifdef DROPBEAR_PRNGD_SOCKET
|
||||||
if (prngd)
|
if (prngd)
|
||||||
@ -185,7 +192,8 @@ void seedrandom() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* A few other sources to fall back on. Add more here for other platforms */
|
/* A few other sources to fall back on.
|
||||||
|
* Add more here for other platforms */
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
/* Seems to be a reasonable source of entropy from timers. Possibly hard
|
/* Seems to be a reasonable source of entropy from timers. Possibly hard
|
||||||
* for even local attackers to reproduce */
|
* for even local attackers to reproduce */
|
||||||
@ -193,6 +201,9 @@ void seedrandom() {
|
|||||||
/* Might help on systems with wireless */
|
/* Might help on systems with wireless */
|
||||||
process_file(&hs, "/proc/interrupts", 0, 0);
|
process_file(&hs, "/proc/interrupts", 0, 0);
|
||||||
|
|
||||||
|
process_file(&hs, "/proc/loadavg", 0, 0);
|
||||||
|
process_file(&hs, "/proc/sys/kernel/random/entropy_avail", 0, 0);
|
||||||
|
|
||||||
/* Mostly network visible but useful in some situations */
|
/* Mostly network visible but useful in some situations */
|
||||||
process_file(&hs, "/proc/net/netstat", 0, 0);
|
process_file(&hs, "/proc/net/netstat", 0, 0);
|
||||||
process_file(&hs, "/proc/net/dev", 0, 0);
|
process_file(&hs, "/proc/net/dev", 0, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user