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