1
0
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:
Simon Tatham
2000-10-23 15:20:05 +00:00
parent 43304f1fca
commit 36156d858c
8 changed files with 65 additions and 8 deletions

28
noise.c
View File

@ -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(&times, sizeof(times));
GetProcessTimes(GetCurrentProcess(), times, times+1, times+2, times+3);
random_add_noise(&times, sizeof(times));
}
/*
* This function is called on every keypress or mouse move, and
* will add the current Windows time and performance monitor