1 /*----------------------------------------------------------------------------*/
2 /* Xymon monitor library.                                                     */
3 /*                                                                            */
4 /* This file is part of the Xymon monitor library, but was taken from the     */
5 /* FreeBSD sources. It was originally written by Eric Young, and is NOT       */
6 /* licensed under the GPL. Please adhere the original copyright notice below. */
7 /*----------------------------------------------------------------------------*/
8 
9 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
10  * All rights reserved.
11  *
12  * This package is an SSL implementation written
13  * by Eric Young (eay@cryptsoft.com).
14  * The implementation was written so as to conform with Netscapes SSL.
15  *
16  * This library is free for commercial and non-commercial use as long as
17  * the following conditions are aheared to.  The following conditions
18  * apply to all code found in this distribution, be it the RC4, RSA,
19  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
20  * included with this distribution is covered by the same copyright terms
21  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
22  *
23  * Copyright remains Eric Young's, and as such any Copyright notices in
24  * the code are not to be removed.
25  * If this package is used in a product, Eric Young should be given attribution
26  * as the author of the parts of the library used.
27  * This can be in the form of a textual message at program startup or
28  * in documentation (online or textual) provided with the package.
29  *
30  * Redistribution and use in source and binary forms, with or without
31  * modification, are permitted provided that the following conditions
32  * are met:
33  * 1. Redistributions of source code must retain the copyright
34  *    notice, this list of conditions and the following disclaimer.
35  * 2. Redistributions in binary form must reproduce the above copyright
36  *    notice, this list of conditions and the following disclaimer in the
37  *    documentation and/or other materials provided with the distribution.
38  * 3. All advertising materials mentioning features or use of this software
39  *    must display the following acknowledgement:
40  *    "This product includes cryptographic software written by
41  *     Eric Young (eay@cryptsoft.com)"
42  *    The word 'cryptographic' can be left out if the rouines from the library
43  *    being used are not cryptographic related :-).
44  * 4. If you include any Windows specific code (or a derivative thereof) from
45  *    the apps directory (application code) you must include an acknowledgement:
46  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
47  *
48  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
49  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
50  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
51  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
52  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
53  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
54  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
55  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
56  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
57  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
58  * SUCH DAMAGE.
59  *
60  * The licence and distribution terms for any publically available version or
61  * derivative of this code cannot be changed.  i.e. this code cannot simply be
62  * copied and put under another distribution licence
63  * [including the GNU Public Licence.]
64  */
65 #define KL0 0x00000000L
66 #define KL1 0x5A827999L
67 #define KL2 0x6ED9EBA1L
68 #define KL3 0x8F1BBCDCL
69 #define KL4 0xA953FD4EL
70 
71 #define KR0 0x50A28BE6L
72 #define KR1 0x5C4DD124L
73 #define KR2 0x6D703EF3L
74 #define KR3 0x7A6D76E9L
75 #define KR4 0x00000000L
76 
77 #define WL00  0
78 #define SL00 11
79 #define WL01  1
80 #define SL01 14
81 #define WL02  2
82 #define SL02 15
83 #define WL03  3
84 #define SL03 12
85 #define WL04  4
86 #define SL04  5
87 #define WL05  5
88 #define SL05  8
89 #define WL06  6
90 #define SL06  7
91 #define WL07  7
92 #define SL07  9
93 #define WL08  8
94 #define SL08 11
95 #define WL09  9
96 #define SL09 13
97 #define WL10 10
98 #define SL10 14
99 #define WL11 11
100 #define SL11 15
101 #define WL12 12
102 #define SL12  6
103 #define WL13 13
104 #define SL13  7
105 #define WL14 14
106 #define SL14  9
107 #define WL15 15
108 #define SL15  8
109 
110 #define WL16  7
111 #define SL16  7
112 #define WL17  4
113 #define SL17  6
114 #define WL18 13
115 #define SL18  8
116 #define WL19  1
117 #define SL19 13
118 #define WL20 10
119 #define SL20 11
120 #define WL21  6
121 #define SL21  9
122 #define WL22 15
123 #define SL22  7
124 #define WL23  3
125 #define SL23 15
126 #define WL24 12
127 #define SL24  7
128 #define WL25  0
129 #define SL25 12
130 #define WL26  9
131 #define SL26 15
132 #define WL27  5
133 #define SL27  9
134 #define WL28  2
135 #define SL28 11
136 #define WL29 14
137 #define SL29  7
138 #define WL30 11
139 #define SL30 13
140 #define WL31  8
141 #define SL31 12
142 
143 #define WL32  3
144 #define SL32 11
145 #define WL33 10
146 #define SL33 13
147 #define WL34 14
148 #define SL34  6
149 #define WL35  4
150 #define SL35  7
151 #define WL36  9
152 #define SL36 14
153 #define WL37 15
154 #define SL37  9
155 #define WL38  8
156 #define SL38 13
157 #define WL39  1
158 #define SL39 15
159 #define WL40  2
160 #define SL40 14
161 #define WL41  7
162 #define SL41  8
163 #define WL42  0
164 #define SL42 13
165 #define WL43  6
166 #define SL43  6
167 #define WL44 13
168 #define SL44  5
169 #define WL45 11
170 #define SL45 12
171 #define WL46  5
172 #define SL46  7
173 #define WL47 12
174 #define SL47  5
175 
176 #define WL48  1
177 #define SL48 11
178 #define WL49  9
179 #define SL49 12
180 #define WL50 11
181 #define SL50 14
182 #define WL51 10
183 #define SL51 15
184 #define WL52  0
185 #define SL52 14
186 #define WL53  8
187 #define SL53 15
188 #define WL54 12
189 #define SL54  9
190 #define WL55  4
191 #define SL55  8
192 #define WL56 13
193 #define SL56  9
194 #define WL57  3
195 #define SL57 14
196 #define WL58  7
197 #define SL58  5
198 #define WL59 15
199 #define SL59  6
200 #define WL60 14
201 #define SL60  8
202 #define WL61  5
203 #define SL61  6
204 #define WL62  6
205 #define SL62  5
206 #define WL63  2
207 #define SL63 12
208 
209 #define WL64  4
210 #define SL64  9
211 #define WL65  0
212 #define SL65 15
213 #define WL66  5
214 #define SL66  5
215 #define WL67  9
216 #define SL67 11
217 #define WL68  7
218 #define SL68  6
219 #define WL69 12
220 #define SL69  8
221 #define WL70  2
222 #define SL70 13
223 #define WL71 10
224 #define SL71 12
225 #define WL72 14
226 #define SL72  5
227 #define WL73  1
228 #define SL73 12
229 #define WL74  3
230 #define SL74 13
231 #define WL75  8
232 #define SL75 14
233 #define WL76 11
234 #define SL76 11
235 #define WL77  6
236 #define SL77  8
237 #define WL78 15
238 #define SL78  5
239 #define WL79 13
240 #define SL79  6
241 
242 #define WR00  5
243 #define SR00  8
244 #define WR01 14
245 #define SR01  9
246 #define WR02  7
247 #define SR02  9
248 #define WR03  0
249 #define SR03 11
250 #define WR04  9
251 #define SR04 13
252 #define WR05  2
253 #define SR05 15
254 #define WR06 11
255 #define SR06 15
256 #define WR07  4
257 #define SR07  5
258 #define WR08 13
259 #define SR08  7
260 #define WR09  6
261 #define SR09  7
262 #define WR10 15
263 #define SR10  8
264 #define WR11  8
265 #define SR11 11
266 #define WR12  1
267 #define SR12 14
268 #define WR13 10
269 #define SR13 14
270 #define WR14  3
271 #define SR14 12
272 #define WR15 12
273 #define SR15  6
274 
275 #define WR16  6
276 #define SR16  9
277 #define WR17 11
278 #define SR17 13
279 #define WR18  3
280 #define SR18 15
281 #define WR19  7
282 #define SR19  7
283 #define WR20  0
284 #define SR20 12
285 #define WR21 13
286 #define SR21  8
287 #define WR22  5
288 #define SR22  9
289 #define WR23 10
290 #define SR23 11
291 #define WR24 14
292 #define SR24  7
293 #define WR25 15
294 #define SR25  7
295 #define WR26  8
296 #define SR26 12
297 #define WR27 12
298 #define SR27  7
299 #define WR28  4
300 #define SR28  6
301 #define WR29  9
302 #define SR29 15
303 #define WR30  1
304 #define SR30 13
305 #define WR31  2
306 #define SR31 11
307 
308 #define WR32 15
309 #define SR32  9
310 #define WR33  5
311 #define SR33  7
312 #define WR34  1
313 #define SR34 15
314 #define WR35  3
315 #define SR35 11
316 #define WR36  7
317 #define SR36  8
318 #define WR37 14
319 #define SR37  6
320 #define WR38  6
321 #define SR38  6
322 #define WR39  9
323 #define SR39 14
324 #define WR40 11
325 #define SR40 12
326 #define WR41  8
327 #define SR41 13
328 #define WR42 12
329 #define SR42  5
330 #define WR43  2
331 #define SR43 14
332 #define WR44 10
333 #define SR44 13
334 #define WR45  0
335 #define SR45 13
336 #define WR46  4
337 #define SR46  7
338 #define WR47 13
339 #define SR47  5
340 
341 #define WR48  8
342 #define SR48 15
343 #define WR49  6
344 #define SR49  5
345 #define WR50  4
346 #define SR50  8
347 #define WR51  1
348 #define SR51 11
349 #define WR52  3
350 #define SR52 14
351 #define WR53 11
352 #define SR53 14
353 #define WR54 15
354 #define SR54  6
355 #define WR55  0
356 #define SR55 14
357 #define WR56  5
358 #define SR56  6
359 #define WR57 12
360 #define SR57  9
361 #define WR58  2
362 #define SR58 12
363 #define WR59 13
364 #define SR59  9
365 #define WR60  9
366 #define SR60 12
367 #define WR61  7
368 #define SR61  5
369 #define WR62 10
370 #define SR62 15
371 #define WR63 14
372 #define SR63  8
373 
374 #define WR64 12
375 #define SR64  8
376 #define WR65 15
377 #define SR65  5
378 #define WR66 10
379 #define SR66 12
380 #define WR67  4
381 #define SR67  9
382 #define WR68  1
383 #define SR68 12
384 #define WR69  5
385 #define SR69  5
386 #define WR70  8
387 #define SR70 14
388 #define WR71  7
389 #define SR71  6
390 #define WR72  6
391 #define SR72  8
392 #define WR73  2
393 #define SR73 13
394 #define WR74 13
395 #define SR74  6
396 #define WR75 14
397 #define SR75  5
398 #define WR76  0
399 #define SR76 15
400 #define WR77  3
401 #define SR77 13
402 #define WR78  9
403 #define SR78 11
404 #define WR79 11
405 #define SR79 11
406 
407