mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-02 03:52:49 -05:00
Improved entropy gathering.
[originally from svn r750]
This commit is contained in:
28
noise.c
28
noise.c
@ -81,6 +81,34 @@ void noise_get_light(void (*func) (void *, int)) {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is called on a timer, and it will monitor
|
||||
* frequently changing quantities such as the state of physical and
|
||||
* virtual memory, the state of the process's message queue, which
|
||||
* window is in the foreground, which owns the clipboard, etc.
|
||||
*/
|
||||
void noise_regular(void) {
|
||||
HWND w;
|
||||
DWORD z;
|
||||
POINT pt;
|
||||
MEMORYSTATUS memstat;
|
||||
FILETIME times[4];
|
||||
|
||||
w = GetForegroundWindow(); random_add_noise(&w, sizeof(w));
|
||||
w = GetCapture(); random_add_noise(&w, sizeof(w));
|
||||
w = GetClipboardOwner(); random_add_noise(&w, sizeof(w));
|
||||
z = GetQueueStatus(QS_ALLEVENTS); random_add_noise(&z, sizeof(z));
|
||||
|
||||
GetCursorPos(&pt); random_add_noise(&pt, sizeof(pt));
|
||||
|
||||
GlobalMemoryStatus(&memstat); random_add_noise(&memstat, sizeof(memstat));
|
||||
|
||||
GetThreadTimes(GetCurrentThread(), times, times+1, times+2, times+3);
|
||||
random_add_noise(×, sizeof(times));
|
||||
GetProcessTimes(GetCurrentProcess(), times, times+1, times+2, times+3);
|
||||
random_add_noise(×, sizeof(times));
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is called on every keypress or mouse move, and
|
||||
* will add the current Windows time and performance monitor
|
||||
|
Reference in New Issue
Block a user