// 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; };