X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=noise.c;h=c5966a712c885fa9fcb088187323795bc76f935a;hb=9b15a8010102fc83dcd7eef78014a65f11619d63;hp=1d764d5f938fcb3f00cdbbf0b76ec46fada868a3;hpb=e48981def400f4eb170f79294790eb15e6832a76;p=PuTTY.git diff --git a/noise.c b/noise.c index 1d764d5f..c5966a71 100644 --- a/noise.c +++ b/noise.c @@ -4,13 +4,6 @@ */ #include -#ifndef AUTO_WINSOCK -#ifdef WINSOCK_TWO -#include -#else -#include -#endif -#endif #include #include "putty.h" @@ -88,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