// Gathers unpredictable system data to be used for generating // random bits #include class CRandomizer { public: CRandomizer(void); void PeriodicAction(void); private: // Private calls void AddTimeSinceMachineStartup(void); void AddAbsoluteSystemStartupTime(void); void AddAppRunningTime(void); void AddStartupVolumeInfo(void); void AddFiller(void); void AddCurrentMouse(void); void AddNow(double millisecondUncertainty); void AddBytes(void *data, long size, double entropy); void GetTimeBaseResolution(void); unsigned long SysTimer(void); // System Info bool mSupportsLargeVolumes; bool mIsPowerPC; bool mIs601; // Time info double mTimebaseTicksPerMillisec; unsigned long mLastPeriodicTicks; // Mouse info long mSamplePeriod; Point mLastMouse; long mMouseStill; };