xref: /minix3/crypto/external/bsd/openssl/dist/MacOS/Randomizer.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1 
2 // Gathers unpredictable system data to be used for generating
3 // random bits
4 
5 #include <MacTypes.h>
6 
7 class 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