source: trunk/c_random.sh@ 17

Last change on this file since 17 was 1, checked in by katerina, 19 years ago

Initial import

File size: 6.2 KB
Line 
1#! /bin/sh
2
3# this program collects some entropy from the system
4# into the file "my_random_file" and outputs the 16-bit
5# Unix 'sum' checksum (seems to be the only portable way
6# to get true entropy with a shell script).
7
8# Apparently, on FreeBSD /dev/random does not block (???), must make sure
9# we really got something rather than nothing.
10
11rnd_tst=no
12
13/bin/rm -f ./my_random_file 2>/dev/null
14
15if test -r "/dev/urandom"; then
16 if test -c "/dev/urandom"; then
17 dd if=/dev/urandom ibs=1 count=4 > my_random_file 2>/dev/null
18 nsum=`sum ./my_random_file | awk '{print $1 }' | sed 's%^0*%%g' 2>/dev/null`
19 if test x$nsum != x; then
20 rnd_tst=yes
21 fi
22 fi
23fi
24
25if test x$rnd_tst = xno; then
26 if test -r "/dev/srandom"; then
27 if test -c "/dev/srandom"; then
28 dd if=/dev/srandom ibs=1 count=4 > my_random_file 2>/dev/null
29 nsum=`sum ./my_random_file | awk '{print $1 }' | sed 's%^0*%%g' 2>/dev/null`
30 if test x$nsum != x; then
31 rnd_tst=yes
32 fi
33 fi
34 fi
35fi
36
37if test x$rnd_tst = xno; then
38#
39 touch ./my_random_file
40#
41 if test -r "/usr/ucb/vmstat"; then
42 /usr/ucb/vmstat >> my_random_file 2>/dev/null
43 fi
44 if test -r "/bin/vmstat"; then
45 /bin/vmstat >> my_random_file 2>/dev/null
46 fi
47 if test -r "/sbin/vmstat"; then
48 /sbin/vmstat >> my_random_file 2>/dev/null
49 fi
50 if test -r "/usr/bin/vmstat"; then
51 /usr/bin/vmstat >> my_random_file 2>/dev/null
52 fi
53 if test -r "/usr/sbin/vmstat"; then
54 /usr/sbin/vmstat >> my_random_file 2>/dev/null
55 fi
56 if test -r "/usr/local/bin/vmstat"; then
57 /usr/local/bin/vmstat >> my_random_file 2>/dev/null
58 fi
59#
60 if test -r "/usr/ucb/netstat"; then
61 /usr/ucb/netstat -n >> my_random_file 2>/dev/null
62 fi
63 if test -r "/bin/netstat"; then
64 /bin/netstat -n >> my_random_file 2>/dev/null
65 fi
66 if test -r "/sbin/netstat"; then
67 /sbin/netstat -n >> my_random_file 2>/dev/null
68 fi
69 if test -r "/usr/bin/netstat"; then
70 /usr/bin/netstat -n >> my_random_file 2>/dev/null
71 fi
72 if test -r "/usr/sbin/netstat"; then
73 /usr/sbin/netstat -n >> my_random_file 2>/dev/null
74 fi
75 if test -r "/usr/local/bin/netstat"; then
76 /usr/local/bin/netstat -n >> my_random_file 2>/dev/null
77 fi
78#
79#
80 if test -r "/usr/ucb/ps"; then
81 /usr/ucb/ps -ef >> my_random_file 2>/dev/null
82 fi
83 if test -r "/bin/ps"; then
84 /bin/ps -ef >> my_random_file 2>/dev/null
85 fi
86 if test -r "/sbin/ps"; then
87 /sbin/ps -ef >> my_random_file 2>/dev/null
88 fi
89 if test -r "/usr/bin/ps"; then
90 /usr/bin/ps -ef >> my_random_file 2>/dev/null
91 fi
92 if test -r "/usr/sbin/ps"; then
93 /usr/sbin/ps -ef >> my_random_file 2>/dev/null
94 fi
95 if test -r "/usr/local/bin/ps"; then
96 /usr/local/bin/ps -ef >> my_random_file 2>/dev/null
97 fi
98#
99#
100 if test -r "/usr/ucb/arp"; then
101 /usr/ucb/arp -a >> my_random_file 2>/dev/null
102 fi
103 if test -r "/bin/arp"; then
104 /bin/arp -a >> my_random_file 2>/dev/null
105 fi
106 if test -r "/sbin/arp"; then
107 /sbin/arp -a >> my_random_file 2>/dev/null
108 fi
109 if test -r "/usr/bin/arp"; then
110 /usr/bin/arp -a >> my_random_file 2>/dev/null
111 fi
112 if test -r "/usr/sbin/arp"; then
113 /usr/sbin/arp -a >> my_random_file 2>/dev/null
114 fi
115 if test -r "/usr/local/bin/arp"; then
116 /usr/local/bin/arp -a >> my_random_file 2>/dev/null
117 fi
118#
119#
120 if test -r "/usr/ucb/w"; then
121 /usr/ucb/w >> my_random_file 2>/dev/null
122 fi
123 if test -r "/bin/w"; then
124 /bin/w >> my_random_file 2>/dev/null
125 fi
126 if test -r "/sbin/w"; then
127 /sbin/w >> my_random_file 2>/dev/null
128 fi
129 if test -r "/usr/bin/w"; then
130 /usr/bin/w >> my_random_file 2>/dev/null
131 fi
132 if test -r "/usr/sbin/w"; then
133 /usr/sbin/w >> my_random_file 2>/dev/null
134 fi
135 if test -r "/usr/local/bin/w"; then
136 /usr/local/bin/w >> my_random_file 2>/dev/null
137 fi
138#
139# Don't use (NFS problems ahead)
140#
141# if test -r "/usr/ucb/df"; then
142# /usr/ucb/df >> my_random_file 2>/dev/null
143# fi
144# if test -r "/bin/df"; then
145# /bin/df >> my_random_file 2>/dev/null
146# fi
147# if test -r "/sbin/df"; then
148# /sbin/df >> my_random_file 2>/dev/null
149# fi
150# if test -r "/usr/bin/df"; then
151# /usr/bin/df >> my_random_file 2>/dev/null
152# fi
153# if test -r "/usr/sbin/df"; then
154# /usr/sbin/df >> my_random_file 2>/dev/null
155# fi
156# if test -r "/usr/local/bin/df"; then
157# /usr/local/bin/df >> my_random_file 2>/dev/null
158# fi
159#
160#
161 if test -r "/usr/ucb/free"; then
162 /usr/ucb/free >> my_random_file 2>/dev/null
163 fi
164 if test -r "/bin/free"; then
165 /bin/free >> my_random_file 2>/dev/null
166 fi
167 if test -r "/sbin/free"; then
168 /sbin/free >> my_random_file 2>/dev/null
169 fi
170 if test -r "/usr/bin/free"; then
171 /usr/bin/free >> my_random_file 2>/dev/null
172 fi
173 if test -r "/usr/sbin/free"; then
174 /usr/sbin/free >> my_random_file 2>/dev/null
175 fi
176 if test -r "/usr/local/bin/free"; then
177 /usr/local/bin/free >> my_random_file 2>/dev/null
178 fi
179#
180#
181 if test -r "/usr/ucb/uptime"; then
182 /usr/ucb/uptime >> my_random_file 2>/dev/null
183 fi
184 if test -r "/bin/uptime"; then
185 /bin/uptime >> my_random_file 2>/dev/null
186 fi
187 if test -r "/sbin/uptime"; then
188 /sbin/uptime >> my_random_file 2>/dev/null
189 fi
190 if test -r "/usr/bin/uptime"; then
191 /usr/bin/uptime >> my_random_file 2>/dev/null
192 fi
193 if test -r "/usr/sbin/uptime"; then
194 /usr/sbin/uptime >> my_random_file 2>/dev/null
195 fi
196 if test -r "/usr/local/bin/uptime"; then
197 /usr/local/bin/uptime >> my_random_file 2>/dev/null
198 fi
199#
200#
201 if test -r "/usr/ucb/procinfo"; then
202 /usr/ucb/procinfo -a >> my_random_file 2>/dev/null
203 fi
204 if test -r "/bin/procinfo"; then
205 /bin/procinfo -a >> my_random_file 2>/dev/null
206 fi
207 if test -r "/sbin/procinfo"; then
208 /sbin/procinfo -a >> my_random_file 2>/dev/null
209 fi
210 if test -r "/usr/bin/procinfo"; then
211 /usr/bin/procinfo -a >> my_random_file 2>/dev/null
212 fi
213 if test -r "/usr/sbin/procinfo"; then
214 /usr/sbin/procinfo -a >> my_random_file 2>/dev/null
215 fi
216 if test -r "/usr/local/bin/procinfo"; then
217 /usr/local/bin/procinfo -a >> my_random_file 2>/dev/null
218 fi
219#
220 nsum=`sum ./my_random_file | awk '{print $1 }' | sed 's%^0*%%g' 2>/dev/null`
221#
222fi
223
224#
225# 'sum' is portable, but only 16 bit
226#
227
228/bin/rm -f ./my_random_file 2>/dev/null
229
230echo $nsum
231
232
Note: See TracBrowser for help on using the repository browser.