1 2// Gathers unpredictable system data to be used for generating 3// random bits 4 5#include <MacTypes.h> 6 7class CRandomizer { 8 public: 9 CRandomizer(void); 10 void PeriodicAction(void); 11 12 private: 13 14 // Private calls 15 16 void AddTimeSinceMachineStartup(void); 17 void AddAbsoluteSystemStartupTime(void); 18 void AddAppRunningTime(void); 19 void AddStartupVolumeInfo(void); 20 void AddFiller(void); 21 22 void AddCurrentMouse(void); 23 void AddNow(double millisecondUncertainty); 24 void AddBytes(void *data, long size, double entropy); 25 26 void GetTimeBaseResolution(void); 27 unsigned long SysTimer(void); 28 29 // System Info 30 bool mSupportsLargeVolumes; 31 bool mIsPowerPC; 32 bool mIs601; 33 34 // Time info 35 double mTimebaseTicksPerMillisec; 36 unsigned long mLastPeriodicTicks; 37 38 // Mouse info 39 long mSamplePeriod; 40 Point mLastMouse; 41 long mMouseStill; 42}; 43