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