aboutsummaryrefslogtreecommitdiff
path: root/openssl/MacOS/Randomizer.h
blob: 7c8b07626b42f653bc96721bef234505fac39c8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

// Gathers unpredictable system data to be used for generating
// random bits

#include <MacTypes.h>

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