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