-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathTODO
125 lines (86 loc) · 2.97 KB
/
TODO
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
For 1.0
o Support more platforms in entropy gathering
o Cleanup function
o Namespace the public functions.
o Add an addrandom function
o Make it able to call itself arc4random
o Win32
o Omit fork detection on win32.
o windows mutex or critical_section; not pthreads.
o make egd code compile on windows.
o Make make make.
o Match glibc coding style more closely
o Better allocation
o use mmap like openbsd likes to use.
o use mlock.
o Support MAP_INHERIT_ZERO / MAP_NO_INHERIT.
o Use MAP_INHERIT_ZERO
o use minherit({VM_,INHERIT_NONE}) otherwise
o Early unit tests
o ChaCha20 test vectors from libottery
o Blake2[bs] test vectors from blake2 source
o Test the streaming rng in 'ottery_bytes'.
o Actual test driver.
o Fresh blake2 test vectors with personalization.
o Better API
o Include a 'status' thing.
. Benchmark
- Include const-time checking
o Fallback RNG for windows.
o Smarter fork handling.
o Support atfork stuff, just in case.
o Fix redundant atfork calls
o Avoid getpid() checks when INHERIT_ZERO is in use.
. Flexible API
o Later unit tests
o Test as many entropy sources as possible.
o easy tests
o Generic urandom reader.
o Test entropy dispatcher
o "Shallow" tests from libottery.
o Tests for fork handling!
o Make the tests pass when built with state.
o As full coverage as possible
o Smarter stream-generation tests
o Turn more defines into functions.
o Clean up state macros.
o Fix all XXXX comments
o Document the code
o Document the approach
o Dedication notice on all files.
o Header on all files
o Even later tests:
o egd tests
o failing-case tests, where possible.
o even better coverage
o actually run the unit tests on windows
o actually run the unit tests on *bsd
o Make it build with, mvsc, I guess.
o header on all files, dedication on all files.
o Fix all XXXX comments
o Re-run uncrustify and emacs indent
o Get it building with all the warnings I can
o Run dieharder tests with all the options.
o Spinlocks for fast-yield cases?
o Rethink and minimize initialization/check code.
. Seek external review.
- Optimization for unlocking during bulk output.
Maybe for 1.0
Not for 1.0
- 100% coverage.
- Split into more files
- Build struct and nonstruct versions with shared code.
- Better arch independence in code
o Make more tests pass on big-endian systems
. Actually match glibc style.
X Sometimes use blake2s?
- Avoid getpid() checks when INHERIT_NONE and atfork are in use??
IMO never:
- Support for setting the PRNG to a known state for reproducibility. If
you need that, #define ottery_random() mt_random() or something.
- BEFORE EACH RELEASE:
- header on all files, dedication on all files.
- Fix all XXXX comments
- Re-run uncrustify and emacs indent
- Get it building with all the warnings I can
- Run dieharder tests with all the options.