diff options
author | beck <> | 1999-09-29 04:37:45 +0000 |
---|---|---|
committer | beck <> | 1999-09-29 04:37:45 +0000 |
commit | de8f24ea083384bb66b32ec105dc4743c5663cdf (patch) | |
tree | 1412176ae62a3cab2cf2b0b92150fcbceaac6092 /src/lib/libcrypto/sha | |
parent | cb929d29896bcb87c2a97417fbd03e50078fc178 (diff) | |
download | openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.gz openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.bz2 openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.zip |
OpenSSL 0.9.4 merge
Diffstat (limited to 'src/lib/libcrypto/sha')
-rw-r--r-- | src/lib/libcrypto/sha/Makefile.ssl | 42 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/Makefile.uni | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/asm/sha1-586.pl | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/asm/sx86unix.cpp | 1948 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha.c | 19 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha.h | 58 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha1.c | 18 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha1_one.c | 9 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha1dgst.c | 244 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha1s.cpp | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha1test.c | 35 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha_dgst.c | 250 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha_locl.h | 78 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha_one.c | 9 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha_sgst.c | 246 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/shatest.c | 35 |
16 files changed, 475 insertions, 2524 deletions
diff --git a/src/lib/libcrypto/sha/Makefile.ssl b/src/lib/libcrypto/sha/Makefile.ssl index eeb545d140..d01245ce37 100644 --- a/src/lib/libcrypto/sha/Makefile.ssl +++ b/src/lib/libcrypto/sha/Makefile.ssl | |||
@@ -7,9 +7,11 @@ TOP= ../.. | |||
7 | CC= cc | 7 | CC= cc |
8 | INCLUDES= | 8 | INCLUDES= |
9 | CFLAG=-g | 9 | CFLAG=-g |
10 | INSTALL_PREFIX= | ||
11 | OPENSSLDIR= /usr/local/ssl | ||
10 | INSTALLTOP=/usr/local/ssl | 12 | INSTALLTOP=/usr/local/ssl |
11 | MAKE= make -f Makefile.ssl | 13 | MAKE= make -f Makefile.ssl |
12 | MAKEDEPEND= makedepend -f Makefile.ssl | 14 | MAKEDEPEND= $(TOP)/util/domd $(TOP) |
13 | MAKEFILE= Makefile.ssl | 15 | MAKEFILE= Makefile.ssl |
14 | AR= ar r | 16 | AR= ar r |
15 | 17 | ||
@@ -39,7 +41,7 @@ all: lib | |||
39 | 41 | ||
40 | lib: $(LIBOBJ) | 42 | lib: $(LIBOBJ) |
41 | $(AR) $(LIB) $(LIBOBJ) | 43 | $(AR) $(LIB) $(LIBOBJ) |
42 | sh $(TOP)/util/ranlib.sh $(LIB) | 44 | $(RANLIB) $(LIB) |
43 | @touch lib | 45 | @touch lib |
44 | 46 | ||
45 | # elf | 47 | # elf |
@@ -58,26 +60,25 @@ asm/sx86-out.o: asm/sx86unix.cpp | |||
58 | 60 | ||
59 | # bsdi | 61 | # bsdi |
60 | asm/sx86bsdi.o: asm/sx86unix.cpp | 62 | asm/sx86bsdi.o: asm/sx86unix.cpp |
61 | $(CPP) -DBSDI asm/sx86unix.cpp | as -o asm/sx86bsdi.o | 63 | $(CPP) -DBSDI asm/sx86unix.cpp | sed 's/ :/:/' | as -o asm/sx86bsdi.o |
62 | 64 | ||
63 | asm/sx86unix.cpp: | 65 | asm/sx86unix.cpp: |
64 | (cd asm; perl sha1-586.pl cpp >sx86unix.cpp) | 66 | (cd asm; $(PERL) sha1-586.pl cpp $(PROCESSOR) >sx86unix.cpp) |
65 | 67 | ||
66 | files: | 68 | files: |
67 | perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO | 69 | $(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO |
68 | 70 | ||
69 | links: | 71 | links: |
70 | /bin/rm -f Makefile | 72 | @$(TOP)/util/point.sh Makefile.ssl Makefile |
71 | $(TOP)/util/point.sh Makefile.ssl Makefile ; | 73 | @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER) |
72 | $(TOP)/util/mklink.sh ../../include $(EXHEADER) | 74 | @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST) |
73 | $(TOP)/util/mklink.sh ../../test $(TEST) | 75 | @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS) |
74 | $(TOP)/util/mklink.sh ../../apps $(APPS) | ||
75 | 76 | ||
76 | install: | 77 | install: |
77 | @for i in $(EXHEADER) ; \ | 78 | @for i in $(EXHEADER) ; \ |
78 | do \ | 79 | do \ |
79 | (cp $$i $(INSTALLTOP)/include/$$i; \ | 80 | (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ |
80 | chmod 644 $(INSTALLTOP)/include/$$i ); \ | 81 | chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ |
81 | done; | 82 | done; |
82 | 83 | ||
83 | tags: | 84 | tags: |
@@ -89,15 +90,22 @@ lint: | |||
89 | lint -DLINT $(INCLUDES) $(SRC)>fluff | 90 | lint -DLINT $(INCLUDES) $(SRC)>fluff |
90 | 91 | ||
91 | depend: | 92 | depend: |
92 | $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC) | 93 | $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC) |
93 | 94 | ||
94 | dclean: | 95 | dclean: |
95 | perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new | 96 | $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new |
96 | mv -f Makefile.new $(MAKEFILE) | 97 | mv -f Makefile.new $(MAKEFILE) |
97 | 98 | ||
98 | clean: | 99 | clean: |
99 | /bin/rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o | 100 | rm -f asm/sx86unix.cpp *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o |
100 | |||
101 | errors: | ||
102 | 101 | ||
103 | # DO NOT DELETE THIS LINE -- make depend depends on it. | 102 | # DO NOT DELETE THIS LINE -- make depend depends on it. |
103 | |||
104 | sha1_one.o: ../../include/openssl/sha.h | ||
105 | sha1dgst.o: ../../include/openssl/opensslconf.h | ||
106 | sha1dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/sha.h | ||
107 | sha1dgst.o: sha_locl.h | ||
108 | sha_dgst.o: ../../include/openssl/opensslconf.h | ||
109 | sha_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/sha.h | ||
110 | sha_dgst.o: sha_locl.h | ||
111 | sha_one.o: ../../include/openssl/sha.h | ||
diff --git a/src/lib/libcrypto/sha/Makefile.uni b/src/lib/libcrypto/sha/Makefile.uni index f3236755b2..b7ec5caa4e 100644 --- a/src/lib/libcrypto/sha/Makefile.uni +++ b/src/lib/libcrypto/sha/Makefile.uni | |||
@@ -49,7 +49,7 @@ all: $(LIB) $(TEST) $(APPS) | |||
49 | 49 | ||
50 | $(LIB): $(LIBOBJ) | 50 | $(LIB): $(LIBOBJ) |
51 | $(AR) $(LIB) $(LIBOBJ) | 51 | $(AR) $(LIB) $(LIBOBJ) |
52 | sh $(TOP)/ranlib.sh $(LIB) | 52 | $(RANLIB) $(LIB) |
53 | 53 | ||
54 | # elf | 54 | # elf |
55 | asm/sx86-elf.o: asm/sx86unix.cpp | 55 | asm/sx86-elf.o: asm/sx86unix.cpp |
diff --git a/src/lib/libcrypto/sha/asm/sha1-586.pl b/src/lib/libcrypto/sha/asm/sha1-586.pl index d6d998f8ee..04e42ab09f 100644 --- a/src/lib/libcrypto/sha/asm/sha1-586.pl +++ b/src/lib/libcrypto/sha/asm/sha1-586.pl | |||
@@ -1,11 +1,11 @@ | |||
1 | #!/usr/bin/perl | 1 | #!/usr/local/bin/perl |
2 | 2 | ||
3 | $normal=0; | 3 | $normal=0; |
4 | 4 | ||
5 | push(@INC,"perlasm","../../perlasm"); | 5 | push(@INC,"perlasm","../../perlasm"); |
6 | require "x86asm.pl"; | 6 | require "x86asm.pl"; |
7 | 7 | ||
8 | &asm_init($ARGV[0],"sha1-586.pl"); | 8 | &asm_init($ARGV[0],"sha1-586.pl",$ARGV[$#ARGV] eq "386"); |
9 | 9 | ||
10 | $A="eax"; | 10 | $A="eax"; |
11 | $B="ebx"; | 11 | $B="ebx"; |
diff --git a/src/lib/libcrypto/sha/asm/sx86unix.cpp b/src/lib/libcrypto/sha/asm/sx86unix.cpp deleted file mode 100644 index 8366664a39..0000000000 --- a/src/lib/libcrypto/sha/asm/sx86unix.cpp +++ /dev/null | |||
@@ -1,1948 +0,0 @@ | |||
1 | /* Run the C pre-processor over this file with one of the following defined | ||
2 | * ELF - elf object files, | ||
3 | * OUT - a.out object files, | ||
4 | * BSDI - BSDI style a.out object files | ||
5 | * SOL - Solaris style elf | ||
6 | */ | ||
7 | |||
8 | #define TYPE(a,b) .type a,b | ||
9 | #define SIZE(a,b) .size a,b | ||
10 | |||
11 | #if defined(OUT) || defined(BSDI) | ||
12 | #define sha1_block_x86 _sha1_block_x86 | ||
13 | |||
14 | #endif | ||
15 | |||
16 | #ifdef OUT | ||
17 | #define OK 1 | ||
18 | #define ALIGN 4 | ||
19 | #endif | ||
20 | |||
21 | #ifdef BSDI | ||
22 | #define OK 1 | ||
23 | #define ALIGN 4 | ||
24 | #undef SIZE | ||
25 | #undef TYPE | ||
26 | #define SIZE(a,b) | ||
27 | #define TYPE(a,b) | ||
28 | #endif | ||
29 | |||
30 | #if defined(ELF) || defined(SOL) | ||
31 | #define OK 1 | ||
32 | #define ALIGN 16 | ||
33 | #endif | ||
34 | |||
35 | #ifndef OK | ||
36 | You need to define one of | ||
37 | ELF - elf systems - linux-elf, NetBSD and DG-UX | ||
38 | OUT - a.out systems - linux-a.out and FreeBSD | ||
39 | SOL - solaris systems, which are elf with strange comment lines | ||
40 | BSDI - a.out with a very primative version of as. | ||
41 | #endif | ||
42 | |||
43 | /* Let the Assembler begin :-) */ | ||
44 | /* Don't even think of reading this code */ | ||
45 | /* It was automatically generated by sha1-586.pl */ | ||
46 | /* Which is a perl program used to generate the x86 assember for */ | ||
47 | /* any of elf, a.out, BSDI,Win32, or Solaris */ | ||
48 | /* eric <eay@cryptsoft.com> */ | ||
49 | |||
50 | .file "sha1-586.s" | ||
51 | .version "01.01" | ||
52 | gcc2_compiled.: | ||
53 | .text | ||
54 | .align ALIGN | ||
55 | .globl sha1_block_x86 | ||
56 | TYPE(sha1_block_x86,@function) | ||
57 | sha1_block_x86: | ||
58 | pushl %esi | ||
59 | pushl %ebp | ||
60 | movl 20(%esp), %eax | ||
61 | movl 16(%esp), %esi | ||
62 | addl %esi, %eax | ||
63 | movl 12(%esp), %ebp | ||
64 | pushl %ebx | ||
65 | subl $64, %eax | ||
66 | pushl %edi | ||
67 | movl 4(%ebp), %ebx | ||
68 | subl $72, %esp | ||
69 | movl 12(%ebp), %edx | ||
70 | movl 16(%ebp), %edi | ||
71 | movl 8(%ebp), %ecx | ||
72 | movl %eax, 68(%esp) | ||
73 | /* First we need to setup the X array */ | ||
74 | movl (%esi), %eax | ||
75 | .L000start: | ||
76 | /* First, load the words onto the stack in network byte order */ | ||
77 | .byte 15 | ||
78 | .byte 200 /* bswapl %eax */ | ||
79 | movl %eax, (%esp) | ||
80 | movl 4(%esi), %eax | ||
81 | .byte 15 | ||
82 | .byte 200 /* bswapl %eax */ | ||
83 | movl %eax, 4(%esp) | ||
84 | movl 8(%esi), %eax | ||
85 | .byte 15 | ||
86 | .byte 200 /* bswapl %eax */ | ||
87 | movl %eax, 8(%esp) | ||
88 | movl 12(%esi), %eax | ||
89 | .byte 15 | ||
90 | .byte 200 /* bswapl %eax */ | ||
91 | movl %eax, 12(%esp) | ||
92 | movl 16(%esi), %eax | ||
93 | .byte 15 | ||
94 | .byte 200 /* bswapl %eax */ | ||
95 | movl %eax, 16(%esp) | ||
96 | movl 20(%esi), %eax | ||
97 | .byte 15 | ||
98 | .byte 200 /* bswapl %eax */ | ||
99 | movl %eax, 20(%esp) | ||
100 | movl 24(%esi), %eax | ||
101 | .byte 15 | ||
102 | .byte 200 /* bswapl %eax */ | ||
103 | movl %eax, 24(%esp) | ||
104 | movl 28(%esi), %eax | ||
105 | .byte 15 | ||
106 | .byte 200 /* bswapl %eax */ | ||
107 | movl %eax, 28(%esp) | ||
108 | movl 32(%esi), %eax | ||
109 | .byte 15 | ||
110 | .byte 200 /* bswapl %eax */ | ||
111 | movl %eax, 32(%esp) | ||
112 | movl 36(%esi), %eax | ||
113 | .byte 15 | ||
114 | .byte 200 /* bswapl %eax */ | ||
115 | movl %eax, 36(%esp) | ||
116 | movl 40(%esi), %eax | ||
117 | .byte 15 | ||
118 | .byte 200 /* bswapl %eax */ | ||
119 | movl %eax, 40(%esp) | ||
120 | movl 44(%esi), %eax | ||
121 | .byte 15 | ||
122 | .byte 200 /* bswapl %eax */ | ||
123 | movl %eax, 44(%esp) | ||
124 | movl 48(%esi), %eax | ||
125 | .byte 15 | ||
126 | .byte 200 /* bswapl %eax */ | ||
127 | movl %eax, 48(%esp) | ||
128 | movl 52(%esi), %eax | ||
129 | .byte 15 | ||
130 | .byte 200 /* bswapl %eax */ | ||
131 | movl %eax, 52(%esp) | ||
132 | movl 56(%esi), %eax | ||
133 | .byte 15 | ||
134 | .byte 200 /* bswapl %eax */ | ||
135 | movl %eax, 56(%esp) | ||
136 | movl 60(%esi), %eax | ||
137 | .byte 15 | ||
138 | .byte 200 /* bswapl %eax */ | ||
139 | movl %eax, 60(%esp) | ||
140 | /* We now have the X array on the stack */ | ||
141 | /* starting at sp-4 */ | ||
142 | movl %esi, 64(%esp) | ||
143 | |||
144 | /* Start processing */ | ||
145 | movl (%ebp), %eax | ||
146 | /* 00_15 0 */ | ||
147 | movl %ecx, %esi | ||
148 | movl %eax, %ebp | ||
149 | xorl %edx, %esi | ||
150 | roll $5, %ebp | ||
151 | andl %ebx, %esi | ||
152 | addl %edi, %ebp | ||
153 | .byte 209 | ||
154 | .byte 203 /* rorl $1 %ebx */ | ||
155 | movl (%esp), %edi | ||
156 | .byte 209 | ||
157 | .byte 203 /* rorl $1 %ebx */ | ||
158 | xorl %edx, %esi | ||
159 | leal 1518500249(%ebp,%edi,1),%ebp | ||
160 | movl %ebx, %edi | ||
161 | addl %ebp, %esi | ||
162 | xorl %ecx, %edi | ||
163 | movl %esi, %ebp | ||
164 | andl %eax, %edi | ||
165 | roll $5, %ebp | ||
166 | addl %edx, %ebp | ||
167 | movl 4(%esp), %edx | ||
168 | .byte 209 | ||
169 | .byte 200 /* rorl $1 %eax */ | ||
170 | xorl %ecx, %edi | ||
171 | .byte 209 | ||
172 | .byte 200 /* rorl $1 %eax */ | ||
173 | leal 1518500249(%ebp,%edx,1),%ebp | ||
174 | addl %ebp, %edi | ||
175 | /* 00_15 2 */ | ||
176 | movl %eax, %edx | ||
177 | movl %edi, %ebp | ||
178 | xorl %ebx, %edx | ||
179 | roll $5, %ebp | ||
180 | andl %esi, %edx | ||
181 | addl %ecx, %ebp | ||
182 | .byte 209 | ||
183 | .byte 206 /* rorl $1 %esi */ | ||
184 | movl 8(%esp), %ecx | ||
185 | .byte 209 | ||
186 | .byte 206 /* rorl $1 %esi */ | ||
187 | xorl %ebx, %edx | ||
188 | leal 1518500249(%ebp,%ecx,1),%ebp | ||
189 | movl %esi, %ecx | ||
190 | addl %ebp, %edx | ||
191 | xorl %eax, %ecx | ||
192 | movl %edx, %ebp | ||
193 | andl %edi, %ecx | ||
194 | roll $5, %ebp | ||
195 | addl %ebx, %ebp | ||
196 | movl 12(%esp), %ebx | ||
197 | .byte 209 | ||
198 | .byte 207 /* rorl $1 %edi */ | ||
199 | xorl %eax, %ecx | ||
200 | .byte 209 | ||
201 | .byte 207 /* rorl $1 %edi */ | ||
202 | leal 1518500249(%ebp,%ebx,1),%ebp | ||
203 | addl %ebp, %ecx | ||
204 | /* 00_15 4 */ | ||
205 | movl %edi, %ebx | ||
206 | movl %ecx, %ebp | ||
207 | xorl %esi, %ebx | ||
208 | roll $5, %ebp | ||
209 | andl %edx, %ebx | ||
210 | addl %eax, %ebp | ||
211 | .byte 209 | ||
212 | .byte 202 /* rorl $1 %edx */ | ||
213 | movl 16(%esp), %eax | ||
214 | .byte 209 | ||
215 | .byte 202 /* rorl $1 %edx */ | ||
216 | xorl %esi, %ebx | ||
217 | leal 1518500249(%ebp,%eax,1),%ebp | ||
218 | movl %edx, %eax | ||
219 | addl %ebp, %ebx | ||
220 | xorl %edi, %eax | ||
221 | movl %ebx, %ebp | ||
222 | andl %ecx, %eax | ||
223 | roll $5, %ebp | ||
224 | addl %esi, %ebp | ||
225 | movl 20(%esp), %esi | ||
226 | .byte 209 | ||
227 | .byte 201 /* rorl $1 %ecx */ | ||
228 | xorl %edi, %eax | ||
229 | .byte 209 | ||
230 | .byte 201 /* rorl $1 %ecx */ | ||
231 | leal 1518500249(%ebp,%esi,1),%ebp | ||
232 | addl %ebp, %eax | ||
233 | /* 00_15 6 */ | ||
234 | movl %ecx, %esi | ||
235 | movl %eax, %ebp | ||
236 | xorl %edx, %esi | ||
237 | roll $5, %ebp | ||
238 | andl %ebx, %esi | ||
239 | addl %edi, %ebp | ||
240 | .byte 209 | ||
241 | .byte 203 /* rorl $1 %ebx */ | ||
242 | movl 24(%esp), %edi | ||
243 | .byte 209 | ||
244 | .byte 203 /* rorl $1 %ebx */ | ||
245 | xorl %edx, %esi | ||
246 | leal 1518500249(%ebp,%edi,1),%ebp | ||
247 | movl %ebx, %edi | ||
248 | addl %ebp, %esi | ||
249 | xorl %ecx, %edi | ||
250 | movl %esi, %ebp | ||
251 | andl %eax, %edi | ||
252 | roll $5, %ebp | ||
253 | addl %edx, %ebp | ||
254 | movl 28(%esp), %edx | ||
255 | .byte 209 | ||
256 | .byte 200 /* rorl $1 %eax */ | ||
257 | xorl %ecx, %edi | ||
258 | .byte 209 | ||
259 | .byte 200 /* rorl $1 %eax */ | ||
260 | leal 1518500249(%ebp,%edx,1),%ebp | ||
261 | addl %ebp, %edi | ||
262 | /* 00_15 8 */ | ||
263 | movl %eax, %edx | ||
264 | movl %edi, %ebp | ||
265 | xorl %ebx, %edx | ||
266 | roll $5, %ebp | ||
267 | andl %esi, %edx | ||
268 | addl %ecx, %ebp | ||
269 | .byte 209 | ||
270 | .byte 206 /* rorl $1 %esi */ | ||
271 | movl 32(%esp), %ecx | ||
272 | .byte 209 | ||
273 | .byte 206 /* rorl $1 %esi */ | ||
274 | xorl %ebx, %edx | ||
275 | leal 1518500249(%ebp,%ecx,1),%ebp | ||
276 | movl %esi, %ecx | ||
277 | addl %ebp, %edx | ||
278 | xorl %eax, %ecx | ||
279 | movl %edx, %ebp | ||
280 | andl %edi, %ecx | ||
281 | roll $5, %ebp | ||
282 | addl %ebx, %ebp | ||
283 | movl 36(%esp), %ebx | ||
284 | .byte 209 | ||
285 | .byte 207 /* rorl $1 %edi */ | ||
286 | xorl %eax, %ecx | ||
287 | .byte 209 | ||
288 | .byte 207 /* rorl $1 %edi */ | ||
289 | leal 1518500249(%ebp,%ebx,1),%ebp | ||
290 | addl %ebp, %ecx | ||
291 | /* 00_15 10 */ | ||
292 | movl %edi, %ebx | ||
293 | movl %ecx, %ebp | ||
294 | xorl %esi, %ebx | ||
295 | roll $5, %ebp | ||
296 | andl %edx, %ebx | ||
297 | addl %eax, %ebp | ||
298 | .byte 209 | ||
299 | .byte 202 /* rorl $1 %edx */ | ||
300 | movl 40(%esp), %eax | ||
301 | .byte 209 | ||
302 | .byte 202 /* rorl $1 %edx */ | ||
303 | xorl %esi, %ebx | ||
304 | leal 1518500249(%ebp,%eax,1),%ebp | ||
305 | movl %edx, %eax | ||
306 | addl %ebp, %ebx | ||
307 | xorl %edi, %eax | ||
308 | movl %ebx, %ebp | ||
309 | andl %ecx, %eax | ||
310 | roll $5, %ebp | ||
311 | addl %esi, %ebp | ||
312 | movl 44(%esp), %esi | ||
313 | .byte 209 | ||
314 | .byte 201 /* rorl $1 %ecx */ | ||
315 | xorl %edi, %eax | ||
316 | .byte 209 | ||
317 | .byte 201 /* rorl $1 %ecx */ | ||
318 | leal 1518500249(%ebp,%esi,1),%ebp | ||
319 | addl %ebp, %eax | ||
320 | /* 00_15 12 */ | ||
321 | movl %ecx, %esi | ||
322 | movl %eax, %ebp | ||
323 | xorl %edx, %esi | ||
324 | roll $5, %ebp | ||
325 | andl %ebx, %esi | ||
326 | addl %edi, %ebp | ||
327 | .byte 209 | ||
328 | .byte 203 /* rorl $1 %ebx */ | ||
329 | movl 48(%esp), %edi | ||
330 | .byte 209 | ||
331 | .byte 203 /* rorl $1 %ebx */ | ||
332 | xorl %edx, %esi | ||
333 | leal 1518500249(%ebp,%edi,1),%ebp | ||
334 | movl %ebx, %edi | ||
335 | addl %ebp, %esi | ||
336 | xorl %ecx, %edi | ||
337 | movl %esi, %ebp | ||
338 | andl %eax, %edi | ||
339 | roll $5, %ebp | ||
340 | addl %edx, %ebp | ||
341 | movl 52(%esp), %edx | ||
342 | .byte 209 | ||
343 | .byte 200 /* rorl $1 %eax */ | ||
344 | xorl %ecx, %edi | ||
345 | .byte 209 | ||
346 | .byte 200 /* rorl $1 %eax */ | ||
347 | leal 1518500249(%ebp,%edx,1),%ebp | ||
348 | addl %ebp, %edi | ||
349 | /* 00_15 14 */ | ||
350 | movl %eax, %edx | ||
351 | movl %edi, %ebp | ||
352 | xorl %ebx, %edx | ||
353 | roll $5, %ebp | ||
354 | andl %esi, %edx | ||
355 | addl %ecx, %ebp | ||
356 | .byte 209 | ||
357 | .byte 206 /* rorl $1 %esi */ | ||
358 | movl 56(%esp), %ecx | ||
359 | .byte 209 | ||
360 | .byte 206 /* rorl $1 %esi */ | ||
361 | xorl %ebx, %edx | ||
362 | leal 1518500249(%ebp,%ecx,1),%ebp | ||
363 | movl %esi, %ecx | ||
364 | addl %ebp, %edx | ||
365 | xorl %eax, %ecx | ||
366 | movl %edx, %ebp | ||
367 | andl %edi, %ecx | ||
368 | roll $5, %ebp | ||
369 | addl %ebx, %ebp | ||
370 | movl 60(%esp), %ebx | ||
371 | .byte 209 | ||
372 | .byte 207 /* rorl $1 %edi */ | ||
373 | xorl %eax, %ecx | ||
374 | .byte 209 | ||
375 | .byte 207 /* rorl $1 %edi */ | ||
376 | leal 1518500249(%ebp,%ebx,1),%ebp | ||
377 | addl %ebp, %ecx | ||
378 | /* 16_19 16 */ | ||
379 | nop | ||
380 | movl (%esp), %ebp | ||
381 | movl 8(%esp), %ebx | ||
382 | xorl %ebp, %ebx | ||
383 | movl 32(%esp), %ebp | ||
384 | xorl %ebp, %ebx | ||
385 | movl 52(%esp), %ebp | ||
386 | xorl %ebp, %ebx | ||
387 | movl %edi, %ebp | ||
388 | .byte 209 | ||
389 | .byte 195 /* roll $1 %ebx */ | ||
390 | xorl %esi, %ebp | ||
391 | movl %ebx, (%esp) | ||
392 | andl %edx, %ebp | ||
393 | leal 1518500249(%ebx,%eax,1),%ebx | ||
394 | xorl %esi, %ebp | ||
395 | movl %ecx, %eax | ||
396 | addl %ebp, %ebx | ||
397 | roll $5, %eax | ||
398 | .byte 209 | ||
399 | .byte 202 /* rorl $1 %edx */ | ||
400 | addl %eax, %ebx | ||
401 | movl 4(%esp), %eax | ||
402 | movl 12(%esp), %ebp | ||
403 | xorl %ebp, %eax | ||
404 | movl 36(%esp), %ebp | ||
405 | xorl %ebp, %eax | ||
406 | movl 56(%esp), %ebp | ||
407 | .byte 209 | ||
408 | .byte 202 /* rorl $1 %edx */ | ||
409 | xorl %ebp, %eax | ||
410 | .byte 209 | ||
411 | .byte 192 /* roll $1 %eax */ | ||
412 | movl %edx, %ebp | ||
413 | xorl %edi, %ebp | ||
414 | movl %eax, 4(%esp) | ||
415 | andl %ecx, %ebp | ||
416 | leal 1518500249(%eax,%esi,1),%eax | ||
417 | xorl %edi, %ebp | ||
418 | movl %ebx, %esi | ||
419 | roll $5, %esi | ||
420 | .byte 209 | ||
421 | .byte 201 /* rorl $1 %ecx */ | ||
422 | addl %esi, %eax | ||
423 | .byte 209 | ||
424 | .byte 201 /* rorl $1 %ecx */ | ||
425 | addl %ebp, %eax | ||
426 | /* 16_19 18 */ | ||
427 | movl 8(%esp), %ebp | ||
428 | movl 16(%esp), %esi | ||
429 | xorl %ebp, %esi | ||
430 | movl 40(%esp), %ebp | ||
431 | xorl %ebp, %esi | ||
432 | movl 60(%esp), %ebp | ||
433 | xorl %ebp, %esi | ||
434 | movl %ecx, %ebp | ||
435 | .byte 209 | ||
436 | .byte 198 /* roll $1 %esi */ | ||
437 | xorl %edx, %ebp | ||
438 | movl %esi, 8(%esp) | ||
439 | andl %ebx, %ebp | ||
440 | leal 1518500249(%esi,%edi,1),%esi | ||
441 | xorl %edx, %ebp | ||
442 | movl %eax, %edi | ||
443 | addl %ebp, %esi | ||
444 | roll $5, %edi | ||
445 | .byte 209 | ||
446 | .byte 203 /* rorl $1 %ebx */ | ||
447 | addl %edi, %esi | ||
448 | movl 12(%esp), %edi | ||
449 | movl 20(%esp), %ebp | ||
450 | xorl %ebp, %edi | ||
451 | movl 44(%esp), %ebp | ||
452 | xorl %ebp, %edi | ||
453 | movl (%esp), %ebp | ||
454 | .byte 209 | ||
455 | .byte 203 /* rorl $1 %ebx */ | ||
456 | xorl %ebp, %edi | ||
457 | .byte 209 | ||
458 | .byte 199 /* roll $1 %edi */ | ||
459 | movl %ebx, %ebp | ||
460 | xorl %ecx, %ebp | ||
461 | movl %edi, 12(%esp) | ||
462 | andl %eax, %ebp | ||
463 | leal 1518500249(%edi,%edx,1),%edi | ||
464 | xorl %ecx, %ebp | ||
465 | movl %esi, %edx | ||
466 | roll $5, %edx | ||
467 | .byte 209 | ||
468 | .byte 200 /* rorl $1 %eax */ | ||
469 | addl %edx, %edi | ||
470 | .byte 209 | ||
471 | .byte 200 /* rorl $1 %eax */ | ||
472 | addl %ebp, %edi | ||
473 | /* 20_39 20 */ | ||
474 | movl 16(%esp), %edx | ||
475 | movl 24(%esp), %ebp | ||
476 | xorl %ebp, %edx | ||
477 | movl 48(%esp), %ebp | ||
478 | xorl %ebp, %edx | ||
479 | movl 4(%esp), %ebp | ||
480 | xorl %ebp, %edx | ||
481 | movl %esi, %ebp | ||
482 | .byte 209 | ||
483 | .byte 194 /* roll $1 %edx */ | ||
484 | xorl %eax, %ebp | ||
485 | movl %edx, 16(%esp) | ||
486 | xorl %ebx, %ebp | ||
487 | leal 1859775393(%edx,%ecx,1),%edx | ||
488 | movl %edi, %ecx | ||
489 | roll $5, %ecx | ||
490 | .byte 209 | ||
491 | .byte 206 /* rorl $1 %esi */ | ||
492 | addl %ebp, %ecx | ||
493 | .byte 209 | ||
494 | .byte 206 /* rorl $1 %esi */ | ||
495 | addl %ecx, %edx | ||
496 | /* 20_39 21 */ | ||
497 | movl 20(%esp), %ecx | ||
498 | movl 28(%esp), %ebp | ||
499 | xorl %ebp, %ecx | ||
500 | movl 52(%esp), %ebp | ||
501 | xorl %ebp, %ecx | ||
502 | movl 8(%esp), %ebp | ||
503 | xorl %ebp, %ecx | ||
504 | movl %edi, %ebp | ||
505 | .byte 209 | ||
506 | .byte 193 /* roll $1 %ecx */ | ||
507 | xorl %esi, %ebp | ||
508 | movl %ecx, 20(%esp) | ||
509 | xorl %eax, %ebp | ||
510 | leal 1859775393(%ecx,%ebx,1),%ecx | ||
511 | movl %edx, %ebx | ||
512 | roll $5, %ebx | ||
513 | .byte 209 | ||
514 | .byte 207 /* rorl $1 %edi */ | ||
515 | addl %ebp, %ebx | ||
516 | .byte 209 | ||
517 | .byte 207 /* rorl $1 %edi */ | ||
518 | addl %ebx, %ecx | ||
519 | /* 20_39 22 */ | ||
520 | movl 24(%esp), %ebx | ||
521 | movl 32(%esp), %ebp | ||
522 | xorl %ebp, %ebx | ||
523 | movl 56(%esp), %ebp | ||
524 | xorl %ebp, %ebx | ||
525 | movl 12(%esp), %ebp | ||
526 | xorl %ebp, %ebx | ||
527 | movl %edx, %ebp | ||
528 | .byte 209 | ||
529 | .byte 195 /* roll $1 %ebx */ | ||
530 | xorl %edi, %ebp | ||
531 | movl %ebx, 24(%esp) | ||
532 | xorl %esi, %ebp | ||
533 | leal 1859775393(%ebx,%eax,1),%ebx | ||
534 | movl %ecx, %eax | ||
535 | roll $5, %eax | ||
536 | .byte 209 | ||
537 | .byte 202 /* rorl $1 %edx */ | ||
538 | addl %ebp, %eax | ||
539 | .byte 209 | ||
540 | .byte 202 /* rorl $1 %edx */ | ||
541 | addl %eax, %ebx | ||
542 | /* 20_39 23 */ | ||
543 | movl 28(%esp), %eax | ||
544 | movl 36(%esp), %ebp | ||
545 | xorl %ebp, %eax | ||
546 | movl 60(%esp), %ebp | ||
547 | xorl %ebp, %eax | ||
548 | movl 16(%esp), %ebp | ||
549 | xorl %ebp, %eax | ||
550 | movl %ecx, %ebp | ||
551 | .byte 209 | ||
552 | .byte 192 /* roll $1 %eax */ | ||
553 | xorl %edx, %ebp | ||
554 | movl %eax, 28(%esp) | ||
555 | xorl %edi, %ebp | ||
556 | leal 1859775393(%eax,%esi,1),%eax | ||
557 | movl %ebx, %esi | ||
558 | roll $5, %esi | ||
559 | .byte 209 | ||
560 | .byte 201 /* rorl $1 %ecx */ | ||
561 | addl %ebp, %esi | ||
562 | .byte 209 | ||
563 | .byte 201 /* rorl $1 %ecx */ | ||
564 | addl %esi, %eax | ||
565 | /* 20_39 24 */ | ||
566 | movl 32(%esp), %esi | ||
567 | movl 40(%esp), %ebp | ||
568 | xorl %ebp, %esi | ||
569 | movl (%esp), %ebp | ||
570 | xorl %ebp, %esi | ||
571 | movl 20(%esp), %ebp | ||
572 | xorl %ebp, %esi | ||
573 | movl %ebx, %ebp | ||
574 | .byte 209 | ||
575 | .byte 198 /* roll $1 %esi */ | ||
576 | xorl %ecx, %ebp | ||
577 | movl %esi, 32(%esp) | ||
578 | xorl %edx, %ebp | ||
579 | leal 1859775393(%esi,%edi,1),%esi | ||
580 | movl %eax, %edi | ||
581 | roll $5, %edi | ||
582 | .byte 209 | ||
583 | .byte 203 /* rorl $1 %ebx */ | ||
584 | addl %ebp, %edi | ||
585 | .byte 209 | ||
586 | .byte 203 /* rorl $1 %ebx */ | ||
587 | addl %edi, %esi | ||
588 | /* 20_39 25 */ | ||
589 | movl 36(%esp), %edi | ||
590 | movl 44(%esp), %ebp | ||
591 | xorl %ebp, %edi | ||
592 | movl 4(%esp), %ebp | ||
593 | xorl %ebp, %edi | ||
594 | movl 24(%esp), %ebp | ||
595 | xorl %ebp, %edi | ||
596 | movl %eax, %ebp | ||
597 | .byte 209 | ||
598 | .byte 199 /* roll $1 %edi */ | ||
599 | xorl %ebx, %ebp | ||
600 | movl %edi, 36(%esp) | ||
601 | xorl %ecx, %ebp | ||
602 | leal 1859775393(%edi,%edx,1),%edi | ||
603 | movl %esi, %edx | ||
604 | roll $5, %edx | ||
605 | .byte 209 | ||
606 | .byte 200 /* rorl $1 %eax */ | ||
607 | addl %ebp, %edx | ||
608 | .byte 209 | ||
609 | .byte 200 /* rorl $1 %eax */ | ||
610 | addl %edx, %edi | ||
611 | /* 20_39 26 */ | ||
612 | movl 40(%esp), %edx | ||
613 | movl 48(%esp), %ebp | ||
614 | xorl %ebp, %edx | ||
615 | movl 8(%esp), %ebp | ||
616 | xorl %ebp, %edx | ||
617 | movl 28(%esp), %ebp | ||
618 | xorl %ebp, %edx | ||
619 | movl %esi, %ebp | ||
620 | .byte 209 | ||
621 | .byte 194 /* roll $1 %edx */ | ||
622 | xorl %eax, %ebp | ||
623 | movl %edx, 40(%esp) | ||
624 | xorl %ebx, %ebp | ||
625 | leal 1859775393(%edx,%ecx,1),%edx | ||
626 | movl %edi, %ecx | ||
627 | roll $5, %ecx | ||
628 | .byte 209 | ||
629 | .byte 206 /* rorl $1 %esi */ | ||
630 | addl %ebp, %ecx | ||
631 | .byte 209 | ||
632 | .byte 206 /* rorl $1 %esi */ | ||
633 | addl %ecx, %edx | ||
634 | /* 20_39 27 */ | ||
635 | movl 44(%esp), %ecx | ||
636 | movl 52(%esp), %ebp | ||
637 | xorl %ebp, %ecx | ||
638 | movl 12(%esp), %ebp | ||
639 | xorl %ebp, %ecx | ||
640 | movl 32(%esp), %ebp | ||
641 | xorl %ebp, %ecx | ||
642 | movl %edi, %ebp | ||
643 | .byte 209 | ||
644 | .byte 193 /* roll $1 %ecx */ | ||
645 | xorl %esi, %ebp | ||
646 | movl %ecx, 44(%esp) | ||
647 | xorl %eax, %ebp | ||
648 | leal 1859775393(%ecx,%ebx,1),%ecx | ||
649 | movl %edx, %ebx | ||
650 | roll $5, %ebx | ||
651 | .byte 209 | ||
652 | .byte 207 /* rorl $1 %edi */ | ||
653 | addl %ebp, %ebx | ||
654 | .byte 209 | ||
655 | .byte 207 /* rorl $1 %edi */ | ||
656 | addl %ebx, %ecx | ||
657 | /* 20_39 28 */ | ||
658 | movl 48(%esp), %ebx | ||
659 | movl 56(%esp), %ebp | ||
660 | xorl %ebp, %ebx | ||
661 | movl 16(%esp), %ebp | ||
662 | xorl %ebp, %ebx | ||
663 | movl 36(%esp), %ebp | ||
664 | xorl %ebp, %ebx | ||
665 | movl %edx, %ebp | ||
666 | .byte 209 | ||
667 | .byte 195 /* roll $1 %ebx */ | ||
668 | xorl %edi, %ebp | ||
669 | movl %ebx, 48(%esp) | ||
670 | xorl %esi, %ebp | ||
671 | leal 1859775393(%ebx,%eax,1),%ebx | ||
672 | movl %ecx, %eax | ||
673 | roll $5, %eax | ||
674 | .byte 209 | ||
675 | .byte 202 /* rorl $1 %edx */ | ||
676 | addl %ebp, %eax | ||
677 | .byte 209 | ||
678 | .byte 202 /* rorl $1 %edx */ | ||
679 | addl %eax, %ebx | ||
680 | /* 20_39 29 */ | ||
681 | movl 52(%esp), %eax | ||
682 | movl 60(%esp), %ebp | ||
683 | xorl %ebp, %eax | ||
684 | movl 20(%esp), %ebp | ||
685 | xorl %ebp, %eax | ||
686 | movl 40(%esp), %ebp | ||
687 | xorl %ebp, %eax | ||
688 | movl %ecx, %ebp | ||
689 | .byte 209 | ||
690 | .byte 192 /* roll $1 %eax */ | ||
691 | xorl %edx, %ebp | ||
692 | movl %eax, 52(%esp) | ||
693 | xorl %edi, %ebp | ||
694 | leal 1859775393(%eax,%esi,1),%eax | ||
695 | movl %ebx, %esi | ||
696 | roll $5, %esi | ||
697 | .byte 209 | ||
698 | .byte 201 /* rorl $1 %ecx */ | ||
699 | addl %ebp, %esi | ||
700 | .byte 209 | ||
701 | .byte 201 /* rorl $1 %ecx */ | ||
702 | addl %esi, %eax | ||
703 | /* 20_39 30 */ | ||
704 | movl 56(%esp), %esi | ||
705 | movl (%esp), %ebp | ||
706 | xorl %ebp, %esi | ||
707 | movl 24(%esp), %ebp | ||
708 | xorl %ebp, %esi | ||
709 | movl 44(%esp), %ebp | ||
710 | xorl %ebp, %esi | ||
711 | movl %ebx, %ebp | ||
712 | .byte 209 | ||
713 | .byte 198 /* roll $1 %esi */ | ||
714 | xorl %ecx, %ebp | ||
715 | movl %esi, 56(%esp) | ||
716 | xorl %edx, %ebp | ||
717 | leal 1859775393(%esi,%edi,1),%esi | ||
718 | movl %eax, %edi | ||
719 | roll $5, %edi | ||
720 | .byte 209 | ||
721 | .byte 203 /* rorl $1 %ebx */ | ||
722 | addl %ebp, %edi | ||
723 | .byte 209 | ||
724 | .byte 203 /* rorl $1 %ebx */ | ||
725 | addl %edi, %esi | ||
726 | /* 20_39 31 */ | ||
727 | movl 60(%esp), %edi | ||
728 | movl 4(%esp), %ebp | ||
729 | xorl %ebp, %edi | ||
730 | movl 28(%esp), %ebp | ||
731 | xorl %ebp, %edi | ||
732 | movl 48(%esp), %ebp | ||
733 | xorl %ebp, %edi | ||
734 | movl %eax, %ebp | ||
735 | .byte 209 | ||
736 | .byte 199 /* roll $1 %edi */ | ||
737 | xorl %ebx, %ebp | ||
738 | movl %edi, 60(%esp) | ||
739 | xorl %ecx, %ebp | ||
740 | leal 1859775393(%edi,%edx,1),%edi | ||
741 | movl %esi, %edx | ||
742 | roll $5, %edx | ||
743 | .byte 209 | ||
744 | .byte 200 /* rorl $1 %eax */ | ||
745 | addl %ebp, %edx | ||
746 | .byte 209 | ||
747 | .byte 200 /* rorl $1 %eax */ | ||
748 | addl %edx, %edi | ||
749 | /* 20_39 32 */ | ||
750 | movl (%esp), %edx | ||
751 | movl 8(%esp), %ebp | ||
752 | xorl %ebp, %edx | ||
753 | movl 32(%esp), %ebp | ||
754 | xorl %ebp, %edx | ||
755 | movl 52(%esp), %ebp | ||
756 | xorl %ebp, %edx | ||
757 | movl %esi, %ebp | ||
758 | .byte 209 | ||
759 | .byte 194 /* roll $1 %edx */ | ||
760 | xorl %eax, %ebp | ||
761 | movl %edx, (%esp) | ||
762 | xorl %ebx, %ebp | ||
763 | leal 1859775393(%edx,%ecx,1),%edx | ||
764 | movl %edi, %ecx | ||
765 | roll $5, %ecx | ||
766 | .byte 209 | ||
767 | .byte 206 /* rorl $1 %esi */ | ||
768 | addl %ebp, %ecx | ||
769 | .byte 209 | ||
770 | .byte 206 /* rorl $1 %esi */ | ||
771 | addl %ecx, %edx | ||
772 | /* 20_39 33 */ | ||
773 | movl 4(%esp), %ecx | ||
774 | movl 12(%esp), %ebp | ||
775 | xorl %ebp, %ecx | ||
776 | movl 36(%esp), %ebp | ||
777 | xorl %ebp, %ecx | ||
778 | movl 56(%esp), %ebp | ||
779 | xorl %ebp, %ecx | ||
780 | movl %edi, %ebp | ||
781 | .byte 209 | ||
782 | .byte 193 /* roll $1 %ecx */ | ||
783 | xorl %esi, %ebp | ||
784 | movl %ecx, 4(%esp) | ||
785 | xorl %eax, %ebp | ||
786 | leal 1859775393(%ecx,%ebx,1),%ecx | ||
787 | movl %edx, %ebx | ||
788 | roll $5, %ebx | ||
789 | .byte 209 | ||
790 | .byte 207 /* rorl $1 %edi */ | ||
791 | addl %ebp, %ebx | ||
792 | .byte 209 | ||
793 | .byte 207 /* rorl $1 %edi */ | ||
794 | addl %ebx, %ecx | ||
795 | /* 20_39 34 */ | ||
796 | movl 8(%esp), %ebx | ||
797 | movl 16(%esp), %ebp | ||
798 | xorl %ebp, %ebx | ||
799 | movl 40(%esp), %ebp | ||
800 | xorl %ebp, %ebx | ||
801 | movl 60(%esp), %ebp | ||
802 | xorl %ebp, %ebx | ||
803 | movl %edx, %ebp | ||
804 | .byte 209 | ||
805 | .byte 195 /* roll $1 %ebx */ | ||
806 | xorl %edi, %ebp | ||
807 | movl %ebx, 8(%esp) | ||
808 | xorl %esi, %ebp | ||
809 | leal 1859775393(%ebx,%eax,1),%ebx | ||
810 | movl %ecx, %eax | ||
811 | roll $5, %eax | ||
812 | .byte 209 | ||
813 | .byte 202 /* rorl $1 %edx */ | ||
814 | addl %ebp, %eax | ||
815 | .byte 209 | ||
816 | .byte 202 /* rorl $1 %edx */ | ||
817 | addl %eax, %ebx | ||
818 | /* 20_39 35 */ | ||
819 | movl 12(%esp), %eax | ||
820 | movl 20(%esp), %ebp | ||
821 | xorl %ebp, %eax | ||
822 | movl 44(%esp), %ebp | ||
823 | xorl %ebp, %eax | ||
824 | movl (%esp), %ebp | ||
825 | xorl %ebp, %eax | ||
826 | movl %ecx, %ebp | ||
827 | .byte 209 | ||
828 | .byte 192 /* roll $1 %eax */ | ||
829 | xorl %edx, %ebp | ||
830 | movl %eax, 12(%esp) | ||
831 | xorl %edi, %ebp | ||
832 | leal 1859775393(%eax,%esi,1),%eax | ||
833 | movl %ebx, %esi | ||
834 | roll $5, %esi | ||
835 | .byte 209 | ||
836 | .byte 201 /* rorl $1 %ecx */ | ||
837 | addl %ebp, %esi | ||
838 | .byte 209 | ||
839 | .byte 201 /* rorl $1 %ecx */ | ||
840 | addl %esi, %eax | ||
841 | /* 20_39 36 */ | ||
842 | movl 16(%esp), %esi | ||
843 | movl 24(%esp), %ebp | ||
844 | xorl %ebp, %esi | ||
845 | movl 48(%esp), %ebp | ||
846 | xorl %ebp, %esi | ||
847 | movl 4(%esp), %ebp | ||
848 | xorl %ebp, %esi | ||
849 | movl %ebx, %ebp | ||
850 | .byte 209 | ||
851 | .byte 198 /* roll $1 %esi */ | ||
852 | xorl %ecx, %ebp | ||
853 | movl %esi, 16(%esp) | ||
854 | xorl %edx, %ebp | ||
855 | leal 1859775393(%esi,%edi,1),%esi | ||
856 | movl %eax, %edi | ||
857 | roll $5, %edi | ||
858 | .byte 209 | ||
859 | .byte 203 /* rorl $1 %ebx */ | ||
860 | addl %ebp, %edi | ||
861 | .byte 209 | ||
862 | .byte 203 /* rorl $1 %ebx */ | ||
863 | addl %edi, %esi | ||
864 | /* 20_39 37 */ | ||
865 | movl 20(%esp), %edi | ||
866 | movl 28(%esp), %ebp | ||
867 | xorl %ebp, %edi | ||
868 | movl 52(%esp), %ebp | ||
869 | xorl %ebp, %edi | ||
870 | movl 8(%esp), %ebp | ||
871 | xorl %ebp, %edi | ||
872 | movl %eax, %ebp | ||
873 | .byte 209 | ||
874 | .byte 199 /* roll $1 %edi */ | ||
875 | xorl %ebx, %ebp | ||
876 | movl %edi, 20(%esp) | ||
877 | xorl %ecx, %ebp | ||
878 | leal 1859775393(%edi,%edx,1),%edi | ||
879 | movl %esi, %edx | ||
880 | roll $5, %edx | ||
881 | .byte 209 | ||
882 | .byte 200 /* rorl $1 %eax */ | ||
883 | addl %ebp, %edx | ||
884 | .byte 209 | ||
885 | .byte 200 /* rorl $1 %eax */ | ||
886 | addl %edx, %edi | ||
887 | /* 20_39 38 */ | ||
888 | movl 24(%esp), %edx | ||
889 | movl 32(%esp), %ebp | ||
890 | xorl %ebp, %edx | ||
891 | movl 56(%esp), %ebp | ||
892 | xorl %ebp, %edx | ||
893 | movl 12(%esp), %ebp | ||
894 | xorl %ebp, %edx | ||
895 | movl %esi, %ebp | ||
896 | .byte 209 | ||
897 | .byte 194 /* roll $1 %edx */ | ||
898 | xorl %eax, %ebp | ||
899 | movl %edx, 24(%esp) | ||
900 | xorl %ebx, %ebp | ||
901 | leal 1859775393(%edx,%ecx,1),%edx | ||
902 | movl %edi, %ecx | ||
903 | roll $5, %ecx | ||
904 | .byte 209 | ||
905 | .byte 206 /* rorl $1 %esi */ | ||
906 | addl %ebp, %ecx | ||
907 | .byte 209 | ||
908 | .byte 206 /* rorl $1 %esi */ | ||
909 | addl %ecx, %edx | ||
910 | /* 20_39 39 */ | ||
911 | movl 28(%esp), %ecx | ||
912 | movl 36(%esp), %ebp | ||
913 | xorl %ebp, %ecx | ||
914 | movl 60(%esp), %ebp | ||
915 | xorl %ebp, %ecx | ||
916 | movl 16(%esp), %ebp | ||
917 | xorl %ebp, %ecx | ||
918 | movl %edi, %ebp | ||
919 | .byte 209 | ||
920 | .byte 193 /* roll $1 %ecx */ | ||
921 | xorl %esi, %ebp | ||
922 | movl %ecx, 28(%esp) | ||
923 | xorl %eax, %ebp | ||
924 | leal 1859775393(%ecx,%ebx,1),%ecx | ||
925 | movl %edx, %ebx | ||
926 | roll $5, %ebx | ||
927 | .byte 209 | ||
928 | .byte 207 /* rorl $1 %edi */ | ||
929 | addl %ebp, %ebx | ||
930 | .byte 209 | ||
931 | .byte 207 /* rorl $1 %edi */ | ||
932 | addl %ebx, %ecx | ||
933 | /* 40_59 40 */ | ||
934 | movl 32(%esp), %ebx | ||
935 | movl 40(%esp), %ebp | ||
936 | xorl %ebp, %ebx | ||
937 | movl (%esp), %ebp | ||
938 | xorl %ebp, %ebx | ||
939 | movl 20(%esp), %ebp | ||
940 | xorl %ebp, %ebx | ||
941 | movl %edx, %ebp | ||
942 | .byte 209 | ||
943 | .byte 195 /* roll $1 %ebx */ | ||
944 | orl %edi, %ebp | ||
945 | movl %ebx, 32(%esp) | ||
946 | andl %esi, %ebp | ||
947 | leal 2400959708(%ebx,%eax,1),%ebx | ||
948 | movl %edx, %eax | ||
949 | .byte 209 | ||
950 | .byte 202 /* rorl $1 %edx */ | ||
951 | andl %edi, %eax | ||
952 | orl %eax, %ebp | ||
953 | movl %ecx, %eax | ||
954 | roll $5, %eax | ||
955 | addl %eax, %ebp | ||
956 | movl 36(%esp), %eax | ||
957 | addl %ebp, %ebx | ||
958 | movl 44(%esp), %ebp | ||
959 | xorl %ebp, %eax | ||
960 | movl 4(%esp), %ebp | ||
961 | xorl %ebp, %eax | ||
962 | movl 24(%esp), %ebp | ||
963 | .byte 209 | ||
964 | .byte 202 /* rorl $1 %edx */ | ||
965 | xorl %ebp, %eax | ||
966 | .byte 209 | ||
967 | .byte 192 /* roll $1 %eax */ | ||
968 | movl %ecx, %ebp | ||
969 | movl %eax, 36(%esp) | ||
970 | orl %edx, %ebp | ||
971 | leal 2400959708(%eax,%esi,1),%eax | ||
972 | movl %ecx, %esi | ||
973 | andl %edi, %ebp | ||
974 | andl %edx, %esi | ||
975 | orl %esi, %ebp | ||
976 | movl %ebx, %esi | ||
977 | roll $5, %esi | ||
978 | .byte 209 | ||
979 | .byte 201 /* rorl $1 %ecx */ | ||
980 | addl %esi, %ebp | ||
981 | .byte 209 | ||
982 | .byte 201 /* rorl $1 %ecx */ | ||
983 | addl %ebp, %eax | ||
984 | /* 40_59 41 */ | ||
985 | /* 40_59 42 */ | ||
986 | movl 40(%esp), %esi | ||
987 | movl 48(%esp), %ebp | ||
988 | xorl %ebp, %esi | ||
989 | movl 8(%esp), %ebp | ||
990 | xorl %ebp, %esi | ||
991 | movl 28(%esp), %ebp | ||
992 | xorl %ebp, %esi | ||
993 | movl %ebx, %ebp | ||
994 | .byte 209 | ||
995 | .byte 198 /* roll $1 %esi */ | ||
996 | orl %ecx, %ebp | ||
997 | movl %esi, 40(%esp) | ||
998 | andl %edx, %ebp | ||
999 | leal 2400959708(%esi,%edi,1),%esi | ||
1000 | movl %ebx, %edi | ||
1001 | .byte 209 | ||
1002 | .byte 203 /* rorl $1 %ebx */ | ||
1003 | andl %ecx, %edi | ||
1004 | orl %edi, %ebp | ||
1005 | movl %eax, %edi | ||
1006 | roll $5, %edi | ||
1007 | addl %edi, %ebp | ||
1008 | movl 44(%esp), %edi | ||
1009 | addl %ebp, %esi | ||
1010 | movl 52(%esp), %ebp | ||
1011 | xorl %ebp, %edi | ||
1012 | movl 12(%esp), %ebp | ||
1013 | xorl %ebp, %edi | ||
1014 | movl 32(%esp), %ebp | ||
1015 | .byte 209 | ||
1016 | .byte 203 /* rorl $1 %ebx */ | ||
1017 | xorl %ebp, %edi | ||
1018 | .byte 209 | ||
1019 | .byte 199 /* roll $1 %edi */ | ||
1020 | movl %eax, %ebp | ||
1021 | movl %edi, 44(%esp) | ||
1022 | orl %ebx, %ebp | ||
1023 | leal 2400959708(%edi,%edx,1),%edi | ||
1024 | movl %eax, %edx | ||
1025 | andl %ecx, %ebp | ||
1026 | andl %ebx, %edx | ||
1027 | orl %edx, %ebp | ||
1028 | movl %esi, %edx | ||
1029 | roll $5, %edx | ||
1030 | .byte 209 | ||
1031 | .byte 200 /* rorl $1 %eax */ | ||
1032 | addl %edx, %ebp | ||
1033 | .byte 209 | ||
1034 | .byte 200 /* rorl $1 %eax */ | ||
1035 | addl %ebp, %edi | ||
1036 | /* 40_59 43 */ | ||
1037 | /* 40_59 44 */ | ||
1038 | movl 48(%esp), %edx | ||
1039 | movl 56(%esp), %ebp | ||
1040 | xorl %ebp, %edx | ||
1041 | movl 16(%esp), %ebp | ||
1042 | xorl %ebp, %edx | ||
1043 | movl 36(%esp), %ebp | ||
1044 | xorl %ebp, %edx | ||
1045 | movl %esi, %ebp | ||
1046 | .byte 209 | ||
1047 | .byte 194 /* roll $1 %edx */ | ||
1048 | orl %eax, %ebp | ||
1049 | movl %edx, 48(%esp) | ||
1050 | andl %ebx, %ebp | ||
1051 | leal 2400959708(%edx,%ecx,1),%edx | ||
1052 | movl %esi, %ecx | ||
1053 | .byte 209 | ||
1054 | .byte 206 /* rorl $1 %esi */ | ||
1055 | andl %eax, %ecx | ||
1056 | orl %ecx, %ebp | ||
1057 | movl %edi, %ecx | ||
1058 | roll $5, %ecx | ||
1059 | addl %ecx, %ebp | ||
1060 | movl 52(%esp), %ecx | ||
1061 | addl %ebp, %edx | ||
1062 | movl 60(%esp), %ebp | ||
1063 | xorl %ebp, %ecx | ||
1064 | movl 20(%esp), %ebp | ||
1065 | xorl %ebp, %ecx | ||
1066 | movl 40(%esp), %ebp | ||
1067 | .byte 209 | ||
1068 | .byte 206 /* rorl $1 %esi */ | ||
1069 | xorl %ebp, %ecx | ||
1070 | .byte 209 | ||
1071 | .byte 193 /* roll $1 %ecx */ | ||
1072 | movl %edi, %ebp | ||
1073 | movl %ecx, 52(%esp) | ||
1074 | orl %esi, %ebp | ||
1075 | leal 2400959708(%ecx,%ebx,1),%ecx | ||
1076 | movl %edi, %ebx | ||
1077 | andl %eax, %ebp | ||
1078 | andl %esi, %ebx | ||
1079 | orl %ebx, %ebp | ||
1080 | movl %edx, %ebx | ||
1081 | roll $5, %ebx | ||
1082 | .byte 209 | ||
1083 | .byte 207 /* rorl $1 %edi */ | ||
1084 | addl %ebx, %ebp | ||
1085 | .byte 209 | ||
1086 | .byte 207 /* rorl $1 %edi */ | ||
1087 | addl %ebp, %ecx | ||
1088 | /* 40_59 45 */ | ||
1089 | /* 40_59 46 */ | ||
1090 | movl 56(%esp), %ebx | ||
1091 | movl (%esp), %ebp | ||
1092 | xorl %ebp, %ebx | ||
1093 | movl 24(%esp), %ebp | ||
1094 | xorl %ebp, %ebx | ||
1095 | movl 44(%esp), %ebp | ||
1096 | xorl %ebp, %ebx | ||
1097 | movl %edx, %ebp | ||
1098 | .byte 209 | ||
1099 | .byte 195 /* roll $1 %ebx */ | ||
1100 | orl %edi, %ebp | ||
1101 | movl %ebx, 56(%esp) | ||
1102 | andl %esi, %ebp | ||
1103 | leal 2400959708(%ebx,%eax,1),%ebx | ||
1104 | movl %edx, %eax | ||
1105 | .byte 209 | ||
1106 | .byte 202 /* rorl $1 %edx */ | ||
1107 | andl %edi, %eax | ||
1108 | orl %eax, %ebp | ||
1109 | movl %ecx, %eax | ||
1110 | roll $5, %eax | ||
1111 | addl %eax, %ebp | ||
1112 | movl 60(%esp), %eax | ||
1113 | addl %ebp, %ebx | ||
1114 | movl 4(%esp), %ebp | ||
1115 | xorl %ebp, %eax | ||
1116 | movl 28(%esp), %ebp | ||
1117 | xorl %ebp, %eax | ||
1118 | movl 48(%esp), %ebp | ||
1119 | .byte 209 | ||
1120 | .byte 202 /* rorl $1 %edx */ | ||
1121 | xorl %ebp, %eax | ||
1122 | .byte 209 | ||
1123 | .byte 192 /* roll $1 %eax */ | ||
1124 | movl %ecx, %ebp | ||
1125 | movl %eax, 60(%esp) | ||
1126 | orl %edx, %ebp | ||
1127 | leal 2400959708(%eax,%esi,1),%eax | ||
1128 | movl %ecx, %esi | ||
1129 | andl %edi, %ebp | ||
1130 | andl %edx, %esi | ||
1131 | orl %esi, %ebp | ||
1132 | movl %ebx, %esi | ||
1133 | roll $5, %esi | ||
1134 | .byte 209 | ||
1135 | .byte 201 /* rorl $1 %ecx */ | ||
1136 | addl %esi, %ebp | ||
1137 | .byte 209 | ||
1138 | .byte 201 /* rorl $1 %ecx */ | ||
1139 | addl %ebp, %eax | ||
1140 | /* 40_59 47 */ | ||
1141 | /* 40_59 48 */ | ||
1142 | movl (%esp), %esi | ||
1143 | movl 8(%esp), %ebp | ||
1144 | xorl %ebp, %esi | ||
1145 | movl 32(%esp), %ebp | ||
1146 | xorl %ebp, %esi | ||
1147 | movl 52(%esp), %ebp | ||
1148 | xorl %ebp, %esi | ||
1149 | movl %ebx, %ebp | ||
1150 | .byte 209 | ||
1151 | .byte 198 /* roll $1 %esi */ | ||
1152 | orl %ecx, %ebp | ||
1153 | movl %esi, (%esp) | ||
1154 | andl %edx, %ebp | ||
1155 | leal 2400959708(%esi,%edi,1),%esi | ||
1156 | movl %ebx, %edi | ||
1157 | .byte 209 | ||
1158 | .byte 203 /* rorl $1 %ebx */ | ||
1159 | andl %ecx, %edi | ||
1160 | orl %edi, %ebp | ||
1161 | movl %eax, %edi | ||
1162 | roll $5, %edi | ||
1163 | addl %edi, %ebp | ||
1164 | movl 4(%esp), %edi | ||
1165 | addl %ebp, %esi | ||
1166 | movl 12(%esp), %ebp | ||
1167 | xorl %ebp, %edi | ||
1168 | movl 36(%esp), %ebp | ||
1169 | xorl %ebp, %edi | ||
1170 | movl 56(%esp), %ebp | ||
1171 | .byte 209 | ||
1172 | .byte 203 /* rorl $1 %ebx */ | ||
1173 | xorl %ebp, %edi | ||
1174 | .byte 209 | ||
1175 | .byte 199 /* roll $1 %edi */ | ||
1176 | movl %eax, %ebp | ||
1177 | movl %edi, 4(%esp) | ||
1178 | orl %ebx, %ebp | ||
1179 | leal 2400959708(%edi,%edx,1),%edi | ||
1180 | movl %eax, %edx | ||
1181 | andl %ecx, %ebp | ||
1182 | andl %ebx, %edx | ||
1183 | orl %edx, %ebp | ||
1184 | movl %esi, %edx | ||
1185 | roll $5, %edx | ||
1186 | .byte 209 | ||
1187 | .byte 200 /* rorl $1 %eax */ | ||
1188 | addl %edx, %ebp | ||
1189 | .byte 209 | ||
1190 | .byte 200 /* rorl $1 %eax */ | ||
1191 | addl %ebp, %edi | ||
1192 | /* 40_59 49 */ | ||
1193 | /* 40_59 50 */ | ||
1194 | movl 8(%esp), %edx | ||
1195 | movl 16(%esp), %ebp | ||
1196 | xorl %ebp, %edx | ||
1197 | movl 40(%esp), %ebp | ||
1198 | xorl %ebp, %edx | ||
1199 | movl 60(%esp), %ebp | ||
1200 | xorl %ebp, %edx | ||
1201 | movl %esi, %ebp | ||
1202 | .byte 209 | ||
1203 | .byte 194 /* roll $1 %edx */ | ||
1204 | orl %eax, %ebp | ||
1205 | movl %edx, 8(%esp) | ||
1206 | andl %ebx, %ebp | ||
1207 | leal 2400959708(%edx,%ecx,1),%edx | ||
1208 | movl %esi, %ecx | ||
1209 | .byte 209 | ||
1210 | .byte 206 /* rorl $1 %esi */ | ||
1211 | andl %eax, %ecx | ||
1212 | orl %ecx, %ebp | ||
1213 | movl %edi, %ecx | ||
1214 | roll $5, %ecx | ||
1215 | addl %ecx, %ebp | ||
1216 | movl 12(%esp), %ecx | ||
1217 | addl %ebp, %edx | ||
1218 | movl 20(%esp), %ebp | ||
1219 | xorl %ebp, %ecx | ||
1220 | movl 44(%esp), %ebp | ||
1221 | xorl %ebp, %ecx | ||
1222 | movl (%esp), %ebp | ||
1223 | .byte 209 | ||
1224 | .byte 206 /* rorl $1 %esi */ | ||
1225 | xorl %ebp, %ecx | ||
1226 | .byte 209 | ||
1227 | .byte 193 /* roll $1 %ecx */ | ||
1228 | movl %edi, %ebp | ||
1229 | movl %ecx, 12(%esp) | ||
1230 | orl %esi, %ebp | ||
1231 | leal 2400959708(%ecx,%ebx,1),%ecx | ||
1232 | movl %edi, %ebx | ||
1233 | andl %eax, %ebp | ||
1234 | andl %esi, %ebx | ||
1235 | orl %ebx, %ebp | ||
1236 | movl %edx, %ebx | ||
1237 | roll $5, %ebx | ||
1238 | .byte 209 | ||
1239 | .byte 207 /* rorl $1 %edi */ | ||
1240 | addl %ebx, %ebp | ||
1241 | .byte 209 | ||
1242 | .byte 207 /* rorl $1 %edi */ | ||
1243 | addl %ebp, %ecx | ||
1244 | /* 40_59 51 */ | ||
1245 | /* 40_59 52 */ | ||
1246 | movl 16(%esp), %ebx | ||
1247 | movl 24(%esp), %ebp | ||
1248 | xorl %ebp, %ebx | ||
1249 | movl 48(%esp), %ebp | ||
1250 | xorl %ebp, %ebx | ||
1251 | movl 4(%esp), %ebp | ||
1252 | xorl %ebp, %ebx | ||
1253 | movl %edx, %ebp | ||
1254 | .byte 209 | ||
1255 | .byte 195 /* roll $1 %ebx */ | ||
1256 | orl %edi, %ebp | ||
1257 | movl %ebx, 16(%esp) | ||
1258 | andl %esi, %ebp | ||
1259 | leal 2400959708(%ebx,%eax,1),%ebx | ||
1260 | movl %edx, %eax | ||
1261 | .byte 209 | ||
1262 | .byte 202 /* rorl $1 %edx */ | ||
1263 | andl %edi, %eax | ||
1264 | orl %eax, %ebp | ||
1265 | movl %ecx, %eax | ||
1266 | roll $5, %eax | ||
1267 | addl %eax, %ebp | ||
1268 | movl 20(%esp), %eax | ||
1269 | addl %ebp, %ebx | ||
1270 | movl 28(%esp), %ebp | ||
1271 | xorl %ebp, %eax | ||
1272 | movl 52(%esp), %ebp | ||
1273 | xorl %ebp, %eax | ||
1274 | movl 8(%esp), %ebp | ||
1275 | .byte 209 | ||
1276 | .byte 202 /* rorl $1 %edx */ | ||
1277 | xorl %ebp, %eax | ||
1278 | .byte 209 | ||
1279 | .byte 192 /* roll $1 %eax */ | ||
1280 | movl %ecx, %ebp | ||
1281 | movl %eax, 20(%esp) | ||
1282 | orl %edx, %ebp | ||
1283 | leal 2400959708(%eax,%esi,1),%eax | ||
1284 | movl %ecx, %esi | ||
1285 | andl %edi, %ebp | ||
1286 | andl %edx, %esi | ||
1287 | orl %esi, %ebp | ||
1288 | movl %ebx, %esi | ||
1289 | roll $5, %esi | ||
1290 | .byte 209 | ||
1291 | .byte 201 /* rorl $1 %ecx */ | ||
1292 | addl %esi, %ebp | ||
1293 | .byte 209 | ||
1294 | .byte 201 /* rorl $1 %ecx */ | ||
1295 | addl %ebp, %eax | ||
1296 | /* 40_59 53 */ | ||
1297 | /* 40_59 54 */ | ||
1298 | movl 24(%esp), %esi | ||
1299 | movl 32(%esp), %ebp | ||
1300 | xorl %ebp, %esi | ||
1301 | movl 56(%esp), %ebp | ||
1302 | xorl %ebp, %esi | ||
1303 | movl 12(%esp), %ebp | ||
1304 | xorl %ebp, %esi | ||
1305 | movl %ebx, %ebp | ||
1306 | .byte 209 | ||
1307 | .byte 198 /* roll $1 %esi */ | ||
1308 | orl %ecx, %ebp | ||
1309 | movl %esi, 24(%esp) | ||
1310 | andl %edx, %ebp | ||
1311 | leal 2400959708(%esi,%edi,1),%esi | ||
1312 | movl %ebx, %edi | ||
1313 | .byte 209 | ||
1314 | .byte 203 /* rorl $1 %ebx */ | ||
1315 | andl %ecx, %edi | ||
1316 | orl %edi, %ebp | ||
1317 | movl %eax, %edi | ||
1318 | roll $5, %edi | ||
1319 | addl %edi, %ebp | ||
1320 | movl 28(%esp), %edi | ||
1321 | addl %ebp, %esi | ||
1322 | movl 36(%esp), %ebp | ||
1323 | xorl %ebp, %edi | ||
1324 | movl 60(%esp), %ebp | ||
1325 | xorl %ebp, %edi | ||
1326 | movl 16(%esp), %ebp | ||
1327 | .byte 209 | ||
1328 | .byte 203 /* rorl $1 %ebx */ | ||
1329 | xorl %ebp, %edi | ||
1330 | .byte 209 | ||
1331 | .byte 199 /* roll $1 %edi */ | ||
1332 | movl %eax, %ebp | ||
1333 | movl %edi, 28(%esp) | ||
1334 | orl %ebx, %ebp | ||
1335 | leal 2400959708(%edi,%edx,1),%edi | ||
1336 | movl %eax, %edx | ||
1337 | andl %ecx, %ebp | ||
1338 | andl %ebx, %edx | ||
1339 | orl %edx, %ebp | ||
1340 | movl %esi, %edx | ||
1341 | roll $5, %edx | ||
1342 | .byte 209 | ||
1343 | .byte 200 /* rorl $1 %eax */ | ||
1344 | addl %edx, %ebp | ||
1345 | .byte 209 | ||
1346 | .byte 200 /* rorl $1 %eax */ | ||
1347 | addl %ebp, %edi | ||
1348 | /* 40_59 55 */ | ||
1349 | /* 40_59 56 */ | ||
1350 | movl 32(%esp), %edx | ||
1351 | movl 40(%esp), %ebp | ||
1352 | xorl %ebp, %edx | ||
1353 | movl (%esp), %ebp | ||
1354 | xorl %ebp, %edx | ||
1355 | movl 20(%esp), %ebp | ||
1356 | xorl %ebp, %edx | ||
1357 | movl %esi, %ebp | ||
1358 | .byte 209 | ||
1359 | .byte 194 /* roll $1 %edx */ | ||
1360 | orl %eax, %ebp | ||
1361 | movl %edx, 32(%esp) | ||
1362 | andl %ebx, %ebp | ||
1363 | leal 2400959708(%edx,%ecx,1),%edx | ||
1364 | movl %esi, %ecx | ||
1365 | .byte 209 | ||
1366 | .byte 206 /* rorl $1 %esi */ | ||
1367 | andl %eax, %ecx | ||
1368 | orl %ecx, %ebp | ||
1369 | movl %edi, %ecx | ||
1370 | roll $5, %ecx | ||
1371 | addl %ecx, %ebp | ||
1372 | movl 36(%esp), %ecx | ||
1373 | addl %ebp, %edx | ||
1374 | movl 44(%esp), %ebp | ||
1375 | xorl %ebp, %ecx | ||
1376 | movl 4(%esp), %ebp | ||
1377 | xorl %ebp, %ecx | ||
1378 | movl 24(%esp), %ebp | ||
1379 | .byte 209 | ||
1380 | .byte 206 /* rorl $1 %esi */ | ||
1381 | xorl %ebp, %ecx | ||
1382 | .byte 209 | ||
1383 | .byte 193 /* roll $1 %ecx */ | ||
1384 | movl %edi, %ebp | ||
1385 | movl %ecx, 36(%esp) | ||
1386 | orl %esi, %ebp | ||
1387 | leal 2400959708(%ecx,%ebx,1),%ecx | ||
1388 | movl %edi, %ebx | ||
1389 | andl %eax, %ebp | ||
1390 | andl %esi, %ebx | ||
1391 | orl %ebx, %ebp | ||
1392 | movl %edx, %ebx | ||
1393 | roll $5, %ebx | ||
1394 | .byte 209 | ||
1395 | .byte 207 /* rorl $1 %edi */ | ||
1396 | addl %ebx, %ebp | ||
1397 | .byte 209 | ||
1398 | .byte 207 /* rorl $1 %edi */ | ||
1399 | addl %ebp, %ecx | ||
1400 | /* 40_59 57 */ | ||
1401 | /* 40_59 58 */ | ||
1402 | movl 40(%esp), %ebx | ||
1403 | movl 48(%esp), %ebp | ||
1404 | xorl %ebp, %ebx | ||
1405 | movl 8(%esp), %ebp | ||
1406 | xorl %ebp, %ebx | ||
1407 | movl 28(%esp), %ebp | ||
1408 | xorl %ebp, %ebx | ||
1409 | movl %edx, %ebp | ||
1410 | .byte 209 | ||
1411 | .byte 195 /* roll $1 %ebx */ | ||
1412 | orl %edi, %ebp | ||
1413 | movl %ebx, 40(%esp) | ||
1414 | andl %esi, %ebp | ||
1415 | leal 2400959708(%ebx,%eax,1),%ebx | ||
1416 | movl %edx, %eax | ||
1417 | .byte 209 | ||
1418 | .byte 202 /* rorl $1 %edx */ | ||
1419 | andl %edi, %eax | ||
1420 | orl %eax, %ebp | ||
1421 | movl %ecx, %eax | ||
1422 | roll $5, %eax | ||
1423 | addl %eax, %ebp | ||
1424 | movl 44(%esp), %eax | ||
1425 | addl %ebp, %ebx | ||
1426 | movl 52(%esp), %ebp | ||
1427 | xorl %ebp, %eax | ||
1428 | movl 12(%esp), %ebp | ||
1429 | xorl %ebp, %eax | ||
1430 | movl 32(%esp), %ebp | ||
1431 | .byte 209 | ||
1432 | .byte 202 /* rorl $1 %edx */ | ||
1433 | xorl %ebp, %eax | ||
1434 | .byte 209 | ||
1435 | .byte 192 /* roll $1 %eax */ | ||
1436 | movl %ecx, %ebp | ||
1437 | movl %eax, 44(%esp) | ||
1438 | orl %edx, %ebp | ||
1439 | leal 2400959708(%eax,%esi,1),%eax | ||
1440 | movl %ecx, %esi | ||
1441 | andl %edi, %ebp | ||
1442 | andl %edx, %esi | ||
1443 | orl %esi, %ebp | ||
1444 | movl %ebx, %esi | ||
1445 | roll $5, %esi | ||
1446 | .byte 209 | ||
1447 | .byte 201 /* rorl $1 %ecx */ | ||
1448 | addl %esi, %ebp | ||
1449 | .byte 209 | ||
1450 | .byte 201 /* rorl $1 %ecx */ | ||
1451 | addl %ebp, %eax | ||
1452 | /* 40_59 59 */ | ||
1453 | /* 20_39 60 */ | ||
1454 | movl 48(%esp), %esi | ||
1455 | movl 56(%esp), %ebp | ||
1456 | xorl %ebp, %esi | ||
1457 | movl 16(%esp), %ebp | ||
1458 | xorl %ebp, %esi | ||
1459 | movl 36(%esp), %ebp | ||
1460 | xorl %ebp, %esi | ||
1461 | movl %ebx, %ebp | ||
1462 | .byte 209 | ||
1463 | .byte 198 /* roll $1 %esi */ | ||
1464 | xorl %ecx, %ebp | ||
1465 | movl %esi, 48(%esp) | ||
1466 | xorl %edx, %ebp | ||
1467 | leal 3395469782(%esi,%edi,1),%esi | ||
1468 | movl %eax, %edi | ||
1469 | roll $5, %edi | ||
1470 | .byte 209 | ||
1471 | .byte 203 /* rorl $1 %ebx */ | ||
1472 | addl %ebp, %edi | ||
1473 | .byte 209 | ||
1474 | .byte 203 /* rorl $1 %ebx */ | ||
1475 | addl %edi, %esi | ||
1476 | /* 20_39 61 */ | ||
1477 | movl 52(%esp), %edi | ||
1478 | movl 60(%esp), %ebp | ||
1479 | xorl %ebp, %edi | ||
1480 | movl 20(%esp), %ebp | ||
1481 | xorl %ebp, %edi | ||
1482 | movl 40(%esp), %ebp | ||
1483 | xorl %ebp, %edi | ||
1484 | movl %eax, %ebp | ||
1485 | .byte 209 | ||
1486 | .byte 199 /* roll $1 %edi */ | ||
1487 | xorl %ebx, %ebp | ||
1488 | movl %edi, 52(%esp) | ||
1489 | xorl %ecx, %ebp | ||
1490 | leal 3395469782(%edi,%edx,1),%edi | ||
1491 | movl %esi, %edx | ||
1492 | roll $5, %edx | ||
1493 | .byte 209 | ||
1494 | .byte 200 /* rorl $1 %eax */ | ||
1495 | addl %ebp, %edx | ||
1496 | .byte 209 | ||
1497 | .byte 200 /* rorl $1 %eax */ | ||
1498 | addl %edx, %edi | ||
1499 | /* 20_39 62 */ | ||
1500 | movl 56(%esp), %edx | ||
1501 | movl (%esp), %ebp | ||
1502 | xorl %ebp, %edx | ||
1503 | movl 24(%esp), %ebp | ||
1504 | xorl %ebp, %edx | ||
1505 | movl 44(%esp), %ebp | ||
1506 | xorl %ebp, %edx | ||
1507 | movl %esi, %ebp | ||
1508 | .byte 209 | ||
1509 | .byte 194 /* roll $1 %edx */ | ||
1510 | xorl %eax, %ebp | ||
1511 | movl %edx, 56(%esp) | ||
1512 | xorl %ebx, %ebp | ||
1513 | leal 3395469782(%edx,%ecx,1),%edx | ||
1514 | movl %edi, %ecx | ||
1515 | roll $5, %ecx | ||
1516 | .byte 209 | ||
1517 | .byte 206 /* rorl $1 %esi */ | ||
1518 | addl %ebp, %ecx | ||
1519 | .byte 209 | ||
1520 | .byte 206 /* rorl $1 %esi */ | ||
1521 | addl %ecx, %edx | ||
1522 | /* 20_39 63 */ | ||
1523 | movl 60(%esp), %ecx | ||
1524 | movl 4(%esp), %ebp | ||
1525 | xorl %ebp, %ecx | ||
1526 | movl 28(%esp), %ebp | ||
1527 | xorl %ebp, %ecx | ||
1528 | movl 48(%esp), %ebp | ||
1529 | xorl %ebp, %ecx | ||
1530 | movl %edi, %ebp | ||
1531 | .byte 209 | ||
1532 | .byte 193 /* roll $1 %ecx */ | ||
1533 | xorl %esi, %ebp | ||
1534 | movl %ecx, 60(%esp) | ||
1535 | xorl %eax, %ebp | ||
1536 | leal 3395469782(%ecx,%ebx,1),%ecx | ||
1537 | movl %edx, %ebx | ||
1538 | roll $5, %ebx | ||
1539 | .byte 209 | ||
1540 | .byte 207 /* rorl $1 %edi */ | ||
1541 | addl %ebp, %ebx | ||
1542 | .byte 209 | ||
1543 | .byte 207 /* rorl $1 %edi */ | ||
1544 | addl %ebx, %ecx | ||
1545 | /* 20_39 64 */ | ||
1546 | movl (%esp), %ebx | ||
1547 | movl 8(%esp), %ebp | ||
1548 | xorl %ebp, %ebx | ||
1549 | movl 32(%esp), %ebp | ||
1550 | xorl %ebp, %ebx | ||
1551 | movl 52(%esp), %ebp | ||
1552 | xorl %ebp, %ebx | ||
1553 | movl %edx, %ebp | ||
1554 | .byte 209 | ||
1555 | .byte 195 /* roll $1 %ebx */ | ||
1556 | xorl %edi, %ebp | ||
1557 | movl %ebx, (%esp) | ||
1558 | xorl %esi, %ebp | ||
1559 | leal 3395469782(%ebx,%eax,1),%ebx | ||
1560 | movl %ecx, %eax | ||
1561 | roll $5, %eax | ||
1562 | .byte 209 | ||
1563 | .byte 202 /* rorl $1 %edx */ | ||
1564 | addl %ebp, %eax | ||
1565 | .byte 209 | ||
1566 | .byte 202 /* rorl $1 %edx */ | ||
1567 | addl %eax, %ebx | ||
1568 | /* 20_39 65 */ | ||
1569 | movl 4(%esp), %eax | ||
1570 | movl 12(%esp), %ebp | ||
1571 | xorl %ebp, %eax | ||
1572 | movl 36(%esp), %ebp | ||
1573 | xorl %ebp, %eax | ||
1574 | movl 56(%esp), %ebp | ||
1575 | xorl %ebp, %eax | ||
1576 | movl %ecx, %ebp | ||
1577 | .byte 209 | ||
1578 | .byte 192 /* roll $1 %eax */ | ||
1579 | xorl %edx, %ebp | ||
1580 | movl %eax, 4(%esp) | ||
1581 | xorl %edi, %ebp | ||
1582 | leal 3395469782(%eax,%esi,1),%eax | ||
1583 | movl %ebx, %esi | ||
1584 | roll $5, %esi | ||
1585 | .byte 209 | ||
1586 | .byte 201 /* rorl $1 %ecx */ | ||
1587 | addl %ebp, %esi | ||
1588 | .byte 209 | ||
1589 | .byte 201 /* rorl $1 %ecx */ | ||
1590 | addl %esi, %eax | ||
1591 | /* 20_39 66 */ | ||
1592 | movl 8(%esp), %esi | ||
1593 | movl 16(%esp), %ebp | ||
1594 | xorl %ebp, %esi | ||
1595 | movl 40(%esp), %ebp | ||
1596 | xorl %ebp, %esi | ||
1597 | movl 60(%esp), %ebp | ||
1598 | xorl %ebp, %esi | ||
1599 | movl %ebx, %ebp | ||
1600 | .byte 209 | ||
1601 | .byte 198 /* roll $1 %esi */ | ||
1602 | xorl %ecx, %ebp | ||
1603 | movl %esi, 8(%esp) | ||
1604 | xorl %edx, %ebp | ||
1605 | leal 3395469782(%esi,%edi,1),%esi | ||
1606 | movl %eax, %edi | ||
1607 | roll $5, %edi | ||
1608 | .byte 209 | ||
1609 | .byte 203 /* rorl $1 %ebx */ | ||
1610 | addl %ebp, %edi | ||
1611 | .byte 209 | ||
1612 | .byte 203 /* rorl $1 %ebx */ | ||
1613 | addl %edi, %esi | ||
1614 | /* 20_39 67 */ | ||
1615 | movl 12(%esp), %edi | ||
1616 | movl 20(%esp), %ebp | ||
1617 | xorl %ebp, %edi | ||
1618 | movl 44(%esp), %ebp | ||
1619 | xorl %ebp, %edi | ||
1620 | movl (%esp), %ebp | ||
1621 | xorl %ebp, %edi | ||
1622 | movl %eax, %ebp | ||
1623 | .byte 209 | ||
1624 | .byte 199 /* roll $1 %edi */ | ||
1625 | xorl %ebx, %ebp | ||
1626 | movl %edi, 12(%esp) | ||
1627 | xorl %ecx, %ebp | ||
1628 | leal 3395469782(%edi,%edx,1),%edi | ||
1629 | movl %esi, %edx | ||
1630 | roll $5, %edx | ||
1631 | .byte 209 | ||
1632 | .byte 200 /* rorl $1 %eax */ | ||
1633 | addl %ebp, %edx | ||
1634 | .byte 209 | ||
1635 | .byte 200 /* rorl $1 %eax */ | ||
1636 | addl %edx, %edi | ||
1637 | /* 20_39 68 */ | ||
1638 | movl 16(%esp), %edx | ||
1639 | movl 24(%esp), %ebp | ||
1640 | xorl %ebp, %edx | ||
1641 | movl 48(%esp), %ebp | ||
1642 | xorl %ebp, %edx | ||
1643 | movl 4(%esp), %ebp | ||
1644 | xorl %ebp, %edx | ||
1645 | movl %esi, %ebp | ||
1646 | .byte 209 | ||
1647 | .byte 194 /* roll $1 %edx */ | ||
1648 | xorl %eax, %ebp | ||
1649 | movl %edx, 16(%esp) | ||
1650 | xorl %ebx, %ebp | ||
1651 | leal 3395469782(%edx,%ecx,1),%edx | ||
1652 | movl %edi, %ecx | ||
1653 | roll $5, %ecx | ||
1654 | .byte 209 | ||
1655 | .byte 206 /* rorl $1 %esi */ | ||
1656 | addl %ebp, %ecx | ||
1657 | .byte 209 | ||
1658 | .byte 206 /* rorl $1 %esi */ | ||
1659 | addl %ecx, %edx | ||
1660 | /* 20_39 69 */ | ||
1661 | movl 20(%esp), %ecx | ||
1662 | movl 28(%esp), %ebp | ||
1663 | xorl %ebp, %ecx | ||
1664 | movl 52(%esp), %ebp | ||
1665 | xorl %ebp, %ecx | ||
1666 | movl 8(%esp), %ebp | ||
1667 | xorl %ebp, %ecx | ||
1668 | movl %edi, %ebp | ||
1669 | .byte 209 | ||
1670 | .byte 193 /* roll $1 %ecx */ | ||
1671 | xorl %esi, %ebp | ||
1672 | movl %ecx, 20(%esp) | ||
1673 | xorl %eax, %ebp | ||
1674 | leal 3395469782(%ecx,%ebx,1),%ecx | ||
1675 | movl %edx, %ebx | ||
1676 | roll $5, %ebx | ||
1677 | .byte 209 | ||
1678 | .byte 207 /* rorl $1 %edi */ | ||
1679 | addl %ebp, %ebx | ||
1680 | .byte 209 | ||
1681 | .byte 207 /* rorl $1 %edi */ | ||
1682 | addl %ebx, %ecx | ||
1683 | /* 20_39 70 */ | ||
1684 | movl 24(%esp), %ebx | ||
1685 | movl 32(%esp), %ebp | ||
1686 | xorl %ebp, %ebx | ||
1687 | movl 56(%esp), %ebp | ||
1688 | xorl %ebp, %ebx | ||
1689 | movl 12(%esp), %ebp | ||
1690 | xorl %ebp, %ebx | ||
1691 | movl %edx, %ebp | ||
1692 | .byte 209 | ||
1693 | .byte 195 /* roll $1 %ebx */ | ||
1694 | xorl %edi, %ebp | ||
1695 | movl %ebx, 24(%esp) | ||
1696 | xorl %esi, %ebp | ||
1697 | leal 3395469782(%ebx,%eax,1),%ebx | ||
1698 | movl %ecx, %eax | ||
1699 | roll $5, %eax | ||
1700 | .byte 209 | ||
1701 | .byte 202 /* rorl $1 %edx */ | ||
1702 | addl %ebp, %eax | ||
1703 | .byte 209 | ||
1704 | .byte 202 /* rorl $1 %edx */ | ||
1705 | addl %eax, %ebx | ||
1706 | /* 20_39 71 */ | ||
1707 | movl 28(%esp), %eax | ||
1708 | movl 36(%esp), %ebp | ||
1709 | xorl %ebp, %eax | ||
1710 | movl 60(%esp), %ebp | ||
1711 | xorl %ebp, %eax | ||
1712 | movl 16(%esp), %ebp | ||
1713 | xorl %ebp, %eax | ||
1714 | movl %ecx, %ebp | ||
1715 | .byte 209 | ||
1716 | .byte 192 /* roll $1 %eax */ | ||
1717 | xorl %edx, %ebp | ||
1718 | movl %eax, 28(%esp) | ||
1719 | xorl %edi, %ebp | ||
1720 | leal 3395469782(%eax,%esi,1),%eax | ||
1721 | movl %ebx, %esi | ||
1722 | roll $5, %esi | ||
1723 | .byte 209 | ||
1724 | .byte 201 /* rorl $1 %ecx */ | ||
1725 | addl %ebp, %esi | ||
1726 | .byte 209 | ||
1727 | .byte 201 /* rorl $1 %ecx */ | ||
1728 | addl %esi, %eax | ||
1729 | /* 20_39 72 */ | ||
1730 | movl 32(%esp), %esi | ||
1731 | movl 40(%esp), %ebp | ||
1732 | xorl %ebp, %esi | ||
1733 | movl (%esp), %ebp | ||
1734 | xorl %ebp, %esi | ||
1735 | movl 20(%esp), %ebp | ||
1736 | xorl %ebp, %esi | ||
1737 | movl %ebx, %ebp | ||
1738 | .byte 209 | ||
1739 | .byte 198 /* roll $1 %esi */ | ||
1740 | xorl %ecx, %ebp | ||
1741 | movl %esi, 32(%esp) | ||
1742 | xorl %edx, %ebp | ||
1743 | leal 3395469782(%esi,%edi,1),%esi | ||
1744 | movl %eax, %edi | ||
1745 | roll $5, %edi | ||
1746 | .byte 209 | ||
1747 | .byte 203 /* rorl $1 %ebx */ | ||
1748 | addl %ebp, %edi | ||
1749 | .byte 209 | ||
1750 | .byte 203 /* rorl $1 %ebx */ | ||
1751 | addl %edi, %esi | ||
1752 | /* 20_39 73 */ | ||
1753 | movl 36(%esp), %edi | ||
1754 | movl 44(%esp), %ebp | ||
1755 | xorl %ebp, %edi | ||
1756 | movl 4(%esp), %ebp | ||
1757 | xorl %ebp, %edi | ||
1758 | movl 24(%esp), %ebp | ||
1759 | xorl %ebp, %edi | ||
1760 | movl %eax, %ebp | ||
1761 | .byte 209 | ||
1762 | .byte 199 /* roll $1 %edi */ | ||
1763 | xorl %ebx, %ebp | ||
1764 | movl %edi, 36(%esp) | ||
1765 | xorl %ecx, %ebp | ||
1766 | leal 3395469782(%edi,%edx,1),%edi | ||
1767 | movl %esi, %edx | ||
1768 | roll $5, %edx | ||
1769 | .byte 209 | ||
1770 | .byte 200 /* rorl $1 %eax */ | ||
1771 | addl %ebp, %edx | ||
1772 | .byte 209 | ||
1773 | .byte 200 /* rorl $1 %eax */ | ||
1774 | addl %edx, %edi | ||
1775 | /* 20_39 74 */ | ||
1776 | movl 40(%esp), %edx | ||
1777 | movl 48(%esp), %ebp | ||
1778 | xorl %ebp, %edx | ||
1779 | movl 8(%esp), %ebp | ||
1780 | xorl %ebp, %edx | ||
1781 | movl 28(%esp), %ebp | ||
1782 | xorl %ebp, %edx | ||
1783 | movl %esi, %ebp | ||
1784 | .byte 209 | ||
1785 | .byte 194 /* roll $1 %edx */ | ||
1786 | xorl %eax, %ebp | ||
1787 | movl %edx, 40(%esp) | ||
1788 | xorl %ebx, %ebp | ||
1789 | leal 3395469782(%edx,%ecx,1),%edx | ||
1790 | movl %edi, %ecx | ||
1791 | roll $5, %ecx | ||
1792 | .byte 209 | ||
1793 | .byte 206 /* rorl $1 %esi */ | ||
1794 | addl %ebp, %ecx | ||
1795 | .byte 209 | ||
1796 | .byte 206 /* rorl $1 %esi */ | ||
1797 | addl %ecx, %edx | ||
1798 | /* 20_39 75 */ | ||
1799 | movl 44(%esp), %ecx | ||
1800 | movl 52(%esp), %ebp | ||
1801 | xorl %ebp, %ecx | ||
1802 | movl 12(%esp), %ebp | ||
1803 | xorl %ebp, %ecx | ||
1804 | movl 32(%esp), %ebp | ||
1805 | xorl %ebp, %ecx | ||
1806 | movl %edi, %ebp | ||
1807 | .byte 209 | ||
1808 | .byte 193 /* roll $1 %ecx */ | ||
1809 | xorl %esi, %ebp | ||
1810 | movl %ecx, 44(%esp) | ||
1811 | xorl %eax, %ebp | ||
1812 | leal 3395469782(%ecx,%ebx,1),%ecx | ||
1813 | movl %edx, %ebx | ||
1814 | roll $5, %ebx | ||
1815 | .byte 209 | ||
1816 | .byte 207 /* rorl $1 %edi */ | ||
1817 | addl %ebp, %ebx | ||
1818 | .byte 209 | ||
1819 | .byte 207 /* rorl $1 %edi */ | ||
1820 | addl %ebx, %ecx | ||
1821 | /* 20_39 76 */ | ||
1822 | movl 48(%esp), %ebx | ||
1823 | movl 56(%esp), %ebp | ||
1824 | xorl %ebp, %ebx | ||
1825 | movl 16(%esp), %ebp | ||
1826 | xorl %ebp, %ebx | ||
1827 | movl 36(%esp), %ebp | ||
1828 | xorl %ebp, %ebx | ||
1829 | movl %edx, %ebp | ||
1830 | .byte 209 | ||
1831 | .byte 195 /* roll $1 %ebx */ | ||
1832 | xorl %edi, %ebp | ||
1833 | movl %ebx, 48(%esp) | ||
1834 | xorl %esi, %ebp | ||
1835 | leal 3395469782(%ebx,%eax,1),%ebx | ||
1836 | movl %ecx, %eax | ||
1837 | roll $5, %eax | ||
1838 | .byte 209 | ||
1839 | .byte 202 /* rorl $1 %edx */ | ||
1840 | addl %ebp, %eax | ||
1841 | .byte 209 | ||
1842 | .byte 202 /* rorl $1 %edx */ | ||
1843 | addl %eax, %ebx | ||
1844 | /* 20_39 77 */ | ||
1845 | movl 52(%esp), %eax | ||
1846 | movl 60(%esp), %ebp | ||
1847 | xorl %ebp, %eax | ||
1848 | movl 20(%esp), %ebp | ||
1849 | xorl %ebp, %eax | ||
1850 | movl 40(%esp), %ebp | ||
1851 | xorl %ebp, %eax | ||
1852 | movl %ecx, %ebp | ||
1853 | .byte 209 | ||
1854 | .byte 192 /* roll $1 %eax */ | ||
1855 | xorl %edx, %ebp | ||
1856 | movl %eax, 52(%esp) | ||
1857 | xorl %edi, %ebp | ||
1858 | leal 3395469782(%eax,%esi,1),%eax | ||
1859 | movl %ebx, %esi | ||
1860 | roll $5, %esi | ||
1861 | .byte 209 | ||
1862 | .byte 201 /* rorl $1 %ecx */ | ||
1863 | addl %ebp, %esi | ||
1864 | .byte 209 | ||
1865 | .byte 201 /* rorl $1 %ecx */ | ||
1866 | addl %esi, %eax | ||
1867 | /* 20_39 78 */ | ||
1868 | movl 56(%esp), %esi | ||
1869 | movl (%esp), %ebp | ||
1870 | xorl %ebp, %esi | ||
1871 | movl 24(%esp), %ebp | ||
1872 | xorl %ebp, %esi | ||
1873 | movl 44(%esp), %ebp | ||
1874 | xorl %ebp, %esi | ||
1875 | movl %ebx, %ebp | ||
1876 | .byte 209 | ||
1877 | .byte 198 /* roll $1 %esi */ | ||
1878 | xorl %ecx, %ebp | ||
1879 | movl %esi, 56(%esp) | ||
1880 | xorl %edx, %ebp | ||
1881 | leal 3395469782(%esi,%edi,1),%esi | ||
1882 | movl %eax, %edi | ||
1883 | roll $5, %edi | ||
1884 | .byte 209 | ||
1885 | .byte 203 /* rorl $1 %ebx */ | ||
1886 | addl %ebp, %edi | ||
1887 | .byte 209 | ||
1888 | .byte 203 /* rorl $1 %ebx */ | ||
1889 | addl %edi, %esi | ||
1890 | /* 20_39 79 */ | ||
1891 | movl 60(%esp), %edi | ||
1892 | movl 4(%esp), %ebp | ||
1893 | xorl %ebp, %edi | ||
1894 | movl 28(%esp), %ebp | ||
1895 | xorl %ebp, %edi | ||
1896 | movl 48(%esp), %ebp | ||
1897 | xorl %ebp, %edi | ||
1898 | movl %eax, %ebp | ||
1899 | .byte 209 | ||
1900 | .byte 199 /* roll $1 %edi */ | ||
1901 | xorl %ebx, %ebp | ||
1902 | movl %edi, 60(%esp) | ||
1903 | xorl %ecx, %ebp | ||
1904 | leal 3395469782(%edi,%edx,1),%edi | ||
1905 | movl %esi, %edx | ||
1906 | roll $5, %edx | ||
1907 | addl %ebp, %edx | ||
1908 | movl 92(%esp), %ebp | ||
1909 | .byte 209 | ||
1910 | .byte 200 /* rorl $1 %eax */ | ||
1911 | addl %edx, %edi | ||
1912 | .byte 209 | ||
1913 | .byte 200 /* rorl $1 %eax */ | ||
1914 | /* End processing */ | ||
1915 | |||
1916 | movl 12(%ebp), %edx | ||
1917 | addl %ebx, %edx | ||
1918 | movl 4(%ebp), %ebx | ||
1919 | addl %esi, %ebx | ||
1920 | movl %eax, %esi | ||
1921 | movl (%ebp), %eax | ||
1922 | movl %edx, 12(%ebp) | ||
1923 | addl %edi, %eax | ||
1924 | movl 16(%ebp), %edi | ||
1925 | addl %ecx, %edi | ||
1926 | movl 8(%ebp), %ecx | ||
1927 | addl %esi, %ecx | ||
1928 | movl %eax, (%ebp) | ||
1929 | movl 64(%esp), %esi | ||
1930 | movl %ecx, 8(%ebp) | ||
1931 | addl $64, %esi | ||
1932 | movl 68(%esp), %eax | ||
1933 | movl %edi, 16(%ebp) | ||
1934 | cmpl %esi, %eax | ||
1935 | movl %ebx, 4(%ebp) | ||
1936 | jl .L001end | ||
1937 | movl (%esi), %eax | ||
1938 | jmp .L000start | ||
1939 | .L001end: | ||
1940 | addl $72, %esp | ||
1941 | popl %edi | ||
1942 | popl %ebx | ||
1943 | popl %ebp | ||
1944 | popl %esi | ||
1945 | ret | ||
1946 | .sha1_block_x86_end: | ||
1947 | SIZE(sha1_block_x86,.sha1_block_x86_end-sha1_block_x86) | ||
1948 | .ident "desasm.pl" | ||
diff --git a/src/lib/libcrypto/sha/sha.c b/src/lib/libcrypto/sha/sha.c index 713fec3610..42126551d1 100644 --- a/src/lib/libcrypto/sha/sha.c +++ b/src/lib/libcrypto/sha/sha.c | |||
@@ -58,23 +58,14 @@ | |||
58 | 58 | ||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <stdlib.h> | 60 | #include <stdlib.h> |
61 | #include "sha.h" | 61 | #include <openssl/sha.h> |
62 | 62 | ||
63 | #define BUFSIZE 1024*16 | 63 | #define BUFSIZE 1024*16 |
64 | 64 | ||
65 | #ifndef NOPROTO | ||
66 | void do_fp(FILE *f); | 65 | void do_fp(FILE *f); |
67 | void pt(unsigned char *md); | 66 | void pt(unsigned char *md); |
68 | int read(int, void *, unsigned int); | 67 | int read(int, void *, unsigned int); |
69 | #else | 68 | int main(int argc, char **argv) |
70 | void do_fp(); | ||
71 | void pt(); | ||
72 | int read(); | ||
73 | #endif | ||
74 | |||
75 | int main(argc, argv) | ||
76 | int argc; | ||
77 | char **argv; | ||
78 | { | 69 | { |
79 | int i,err=0; | 70 | int i,err=0; |
80 | FILE *IN; | 71 | FILE *IN; |
@@ -102,8 +93,7 @@ char **argv; | |||
102 | exit(err); | 93 | exit(err); |
103 | } | 94 | } |
104 | 95 | ||
105 | void do_fp(f) | 96 | void do_fp(FILE *f) |
106 | FILE *f; | ||
107 | { | 97 | { |
108 | SHA_CTX c; | 98 | SHA_CTX c; |
109 | unsigned char md[SHA_DIGEST_LENGTH]; | 99 | unsigned char md[SHA_DIGEST_LENGTH]; |
@@ -123,8 +113,7 @@ FILE *f; | |||
123 | pt(md); | 113 | pt(md); |
124 | } | 114 | } |
125 | 115 | ||
126 | void pt(md) | 116 | void pt(unsigned char *md) |
127 | unsigned char *md; | ||
128 | { | 117 | { |
129 | int i; | 118 | int i; |
130 | 119 | ||
diff --git a/src/lib/libcrypto/sha/sha.h b/src/lib/libcrypto/sha/sha.h index 4cf0ea0225..cd6960ee1a 100644 --- a/src/lib/libcrypto/sha/sha.h +++ b/src/lib/libcrypto/sha/sha.h | |||
@@ -63,45 +63,55 @@ | |||
63 | extern "C" { | 63 | extern "C" { |
64 | #endif | 64 | #endif |
65 | 65 | ||
66 | #define SHA_CBLOCK 64 | 66 | #ifdef NO_SHA |
67 | #error SHA is disabled. | ||
68 | #endif | ||
69 | |||
70 | /* | ||
71 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
72 | * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! | ||
73 | * ! SHA_LONG_LOG2 has to be defined along. ! | ||
74 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
75 | */ | ||
76 | |||
77 | #if defined(WIN16) || defined(__LP32__) | ||
78 | #define SHA_LONG unsigned long | ||
79 | #elif defined(_CRAY) || defined(__ILP64__) | ||
80 | #define SHA_LONG unsigned long | ||
81 | #define SHA_LONG_LOG2 3 | ||
82 | #else | ||
83 | #define SHA_LONG unsigned int | ||
84 | #endif | ||
85 | |||
67 | #define SHA_LBLOCK 16 | 86 | #define SHA_LBLOCK 16 |
68 | #define SHA_BLOCK 16 | 87 | #define SHA_CBLOCK (SHA_LBLOCK*4) /* SHA treats input data as a |
69 | #define SHA_LAST_BLOCK 56 | 88 | * contiguous array of 32 bit |
70 | #define SHA_LENGTH_BLOCK 8 | 89 | * wide big-endian values. */ |
90 | #define SHA_LAST_BLOCK (SHA_CBLOCK-8) | ||
71 | #define SHA_DIGEST_LENGTH 20 | 91 | #define SHA_DIGEST_LENGTH 20 |
72 | 92 | ||
73 | typedef struct SHAstate_st | 93 | typedef struct SHAstate_st |
74 | { | 94 | { |
75 | unsigned long h0,h1,h2,h3,h4; | 95 | SHA_LONG h0,h1,h2,h3,h4; |
76 | unsigned long Nl,Nh; | 96 | SHA_LONG Nl,Nh; |
77 | unsigned long data[SHA_LBLOCK]; | 97 | SHA_LONG data[SHA_LBLOCK]; |
78 | int num; | 98 | int num; |
79 | } SHA_CTX; | 99 | } SHA_CTX; |
80 | 100 | ||
81 | #ifndef NOPROTO | 101 | #ifndef NO_SHA0 |
82 | void SHA_Init(SHA_CTX *c); | 102 | void SHA_Init(SHA_CTX *c); |
83 | void SHA_Update(SHA_CTX *c, unsigned char *data, unsigned long len); | 103 | void SHA_Update(SHA_CTX *c, const unsigned char *data, unsigned long len); |
84 | void SHA_Final(unsigned char *md, SHA_CTX *c); | 104 | void SHA_Final(unsigned char *md, SHA_CTX *c); |
85 | unsigned char *SHA(unsigned char *d, unsigned long n,unsigned char *md); | 105 | unsigned char *SHA(const unsigned char *d, unsigned long n,unsigned char *md); |
86 | void SHA_Transform(SHA_CTX *c, unsigned char *data); | 106 | void SHA_Transform(SHA_CTX *c, unsigned char *data); |
107 | #endif | ||
108 | #ifndef NO_SHA1 | ||
87 | void SHA1_Init(SHA_CTX *c); | 109 | void SHA1_Init(SHA_CTX *c); |
88 | void SHA1_Update(SHA_CTX *c, unsigned char *data, unsigned long len); | 110 | void SHA1_Update(SHA_CTX *c, const unsigned char *data, unsigned long len); |
89 | void SHA1_Final(unsigned char *md, SHA_CTX *c); | 111 | void SHA1_Final(unsigned char *md, SHA_CTX *c); |
90 | unsigned char *SHA1(unsigned char *d, unsigned long n,unsigned char *md); | 112 | unsigned char *SHA1(const unsigned char *d, unsigned long n,unsigned char *md); |
91 | void SHA1_Transform(SHA_CTX *c, unsigned char *data); | 113 | void SHA1_Transform(SHA_CTX *c, unsigned char *data); |
92 | #else | ||
93 | void SHA_Init(); | ||
94 | void SHA_Update(); | ||
95 | void SHA_Final(); | ||
96 | unsigned char *SHA(); | ||
97 | void SHA_Transform(); | ||
98 | void SHA1_Init(); | ||
99 | void SHA1_Update(); | ||
100 | void SHA1_Final(); | ||
101 | unsigned char *SHA1(); | ||
102 | void SHA1_Transform(); | ||
103 | #endif | 114 | #endif |
104 | |||
105 | #ifdef __cplusplus | 115 | #ifdef __cplusplus |
106 | } | 116 | } |
107 | #endif | 117 | #endif |
diff --git a/src/lib/libcrypto/sha/sha1.c b/src/lib/libcrypto/sha/sha1.c index a4739ac9fd..d350c88ee4 100644 --- a/src/lib/libcrypto/sha/sha1.c +++ b/src/lib/libcrypto/sha/sha1.c | |||
@@ -58,23 +58,17 @@ | |||
58 | 58 | ||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <stdlib.h> | 60 | #include <stdlib.h> |
61 | #include "sha.h" | 61 | #include <openssl/sha.h> |
62 | 62 | ||
63 | #define BUFSIZE 1024*16 | 63 | #define BUFSIZE 1024*16 |
64 | 64 | ||
65 | #ifndef NOPROTO | ||
66 | void do_fp(FILE *f); | 65 | void do_fp(FILE *f); |
67 | void pt(unsigned char *md); | 66 | void pt(unsigned char *md); |
67 | #ifndef _OSD_POSIX | ||
68 | int read(int, void *, unsigned int); | 68 | int read(int, void *, unsigned int); |
69 | #else | ||
70 | void do_fp(); | ||
71 | void pt(); | ||
72 | int read(); | ||
73 | #endif | 69 | #endif |
74 | 70 | ||
75 | int main(argc, argv) | 71 | int main(int argc, char **argv) |
76 | int argc; | ||
77 | char **argv; | ||
78 | { | 72 | { |
79 | int i,err=0; | 73 | int i,err=0; |
80 | FILE *IN; | 74 | FILE *IN; |
@@ -102,8 +96,7 @@ char **argv; | |||
102 | exit(err); | 96 | exit(err); |
103 | } | 97 | } |
104 | 98 | ||
105 | void do_fp(f) | 99 | void do_fp(FILE *f) |
106 | FILE *f; | ||
107 | { | 100 | { |
108 | SHA_CTX c; | 101 | SHA_CTX c; |
109 | unsigned char md[SHA_DIGEST_LENGTH]; | 102 | unsigned char md[SHA_DIGEST_LENGTH]; |
@@ -123,8 +116,7 @@ FILE *f; | |||
123 | pt(md); | 116 | pt(md); |
124 | } | 117 | } |
125 | 118 | ||
126 | void pt(md) | 119 | void pt(unsigned char *md) |
127 | unsigned char *md; | ||
128 | { | 120 | { |
129 | int i; | 121 | int i; |
130 | 122 | ||
diff --git a/src/lib/libcrypto/sha/sha1_one.c b/src/lib/libcrypto/sha/sha1_one.c index fe5770d601..861752eaa7 100644 --- a/src/lib/libcrypto/sha/sha1_one.c +++ b/src/lib/libcrypto/sha/sha1_one.c | |||
@@ -58,12 +58,10 @@ | |||
58 | 58 | ||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <string.h> | 60 | #include <string.h> |
61 | #include "sha.h" | 61 | #include <openssl/sha.h> |
62 | 62 | ||
63 | unsigned char *SHA1(d, n, md) | 63 | #ifndef NO_SHA1 |
64 | unsigned char *d; | 64 | unsigned char *SHA1(const unsigned char *d, unsigned long n, unsigned char *md) |
65 | unsigned long n; | ||
66 | unsigned char *md; | ||
67 | { | 65 | { |
68 | SHA_CTX c; | 66 | SHA_CTX c; |
69 | static unsigned char m[SHA_DIGEST_LENGTH]; | 67 | static unsigned char m[SHA_DIGEST_LENGTH]; |
@@ -75,3 +73,4 @@ unsigned char *md; | |||
75 | memset(&c,0,sizeof(c)); | 73 | memset(&c,0,sizeof(c)); |
76 | return(md); | 74 | return(md); |
77 | } | 75 | } |
76 | #endif | ||
diff --git a/src/lib/libcrypto/sha/sha1dgst.c b/src/lib/libcrypto/sha/sha1dgst.c index 2b0ae1f0d4..66e885dd76 100644 --- a/src/lib/libcrypto/sha/sha1dgst.c +++ b/src/lib/libcrypto/sha/sha1dgst.c | |||
@@ -60,43 +60,35 @@ | |||
60 | #include <string.h> | 60 | #include <string.h> |
61 | #undef SHA_0 | 61 | #undef SHA_0 |
62 | #define SHA_1 | 62 | #define SHA_1 |
63 | #include "sha.h" | 63 | #include <openssl/sha.h> |
64 | #include "sha_locl.h" | 64 | #include "sha_locl.h" |
65 | #include <openssl/opensslv.h> | ||
65 | 66 | ||
66 | char *SHA1_version="SHA1 part of SSLeay 0.9.0b 29-Jun-1998"; | 67 | #ifndef NO_SHA1 |
68 | char *SHA1_version="SHA1" OPENSSL_VERSION_PTEXT; | ||
67 | 69 | ||
68 | /* Implemented from SHA-1 document - The Secure Hash Algorithm | 70 | /* Implemented from SHA-1 document - The Secure Hash Algorithm |
69 | */ | 71 | */ |
70 | 72 | ||
71 | #define INIT_DATA_h0 (unsigned long)0x67452301L | 73 | #define INIT_DATA_h0 0x67452301UL |
72 | #define INIT_DATA_h1 (unsigned long)0xefcdab89L | 74 | #define INIT_DATA_h1 0xefcdab89UL |
73 | #define INIT_DATA_h2 (unsigned long)0x98badcfeL | 75 | #define INIT_DATA_h2 0x98badcfeUL |
74 | #define INIT_DATA_h3 (unsigned long)0x10325476L | 76 | #define INIT_DATA_h3 0x10325476UL |
75 | #define INIT_DATA_h4 (unsigned long)0xc3d2e1f0L | 77 | #define INIT_DATA_h4 0xc3d2e1f0UL |
76 | 78 | ||
77 | #define K_00_19 0x5a827999L | 79 | #define K_00_19 0x5a827999UL |
78 | #define K_20_39 0x6ed9eba1L | 80 | #define K_20_39 0x6ed9eba1UL |
79 | #define K_40_59 0x8f1bbcdcL | 81 | #define K_40_59 0x8f1bbcdcUL |
80 | #define K_60_79 0xca62c1d6L | 82 | #define K_60_79 0xca62c1d6UL |
81 | 83 | ||
82 | #ifndef NOPROTO | 84 | #ifdef SHA1_ASM |
83 | # ifdef SHA1_ASM | 85 | void sha1_block_x86(SHA_CTX *c, register SHA_LONG *p, int num); |
84 | void sha1_block_x86(SHA_CTX *c, register unsigned long *p, int num); | 86 | # define sha1_block(c,p,n) sha1_block_x86((c),(p),(n)*SHA_CBLOCK) |
85 | # define sha1_block sha1_block_x86 | ||
86 | # else | ||
87 | void sha1_block(SHA_CTX *c, register unsigned long *p, int num); | ||
88 | # endif | ||
89 | #else | 87 | #else |
90 | # ifdef SHA1_ASM | 88 | static void sha1_block(SHA_CTX *c, register SHA_LONG *p, int num); |
91 | void sha1_block_x86(); | ||
92 | # define sha1_block sha1_block_x86 | ||
93 | # else | ||
94 | void sha1_block(); | ||
95 | # endif | ||
96 | #endif | 89 | #endif |
97 | 90 | ||
98 | 91 | #if !defined(B_ENDIAN) && defined(SHA1_ASM) | |
99 | #if defined(L_ENDIAN) && defined(SHA1_ASM) | ||
100 | # define M_c2nl c2l | 92 | # define M_c2nl c2l |
101 | # define M_p_c2nl p_c2l | 93 | # define M_p_c2nl p_c2l |
102 | # define M_c2nl_p c2l_p | 94 | # define M_c2nl_p c2l_p |
@@ -110,8 +102,7 @@ char *SHA1_version="SHA1 part of SSLeay 0.9.0b 29-Jun-1998"; | |||
110 | # define M_nl2c nl2c | 102 | # define M_nl2c nl2c |
111 | #endif | 103 | #endif |
112 | 104 | ||
113 | void SHA1_Init(c) | 105 | void SHA1_Init(SHA_CTX *c) |
114 | SHA_CTX *c; | ||
115 | { | 106 | { |
116 | c->h0=INIT_DATA_h0; | 107 | c->h0=INIT_DATA_h0; |
117 | c->h1=INIT_DATA_h1; | 108 | c->h1=INIT_DATA_h1; |
@@ -123,14 +114,12 @@ SHA_CTX *c; | |||
123 | c->num=0; | 114 | c->num=0; |
124 | } | 115 | } |
125 | 116 | ||
126 | void SHA1_Update(c, data, len) | 117 | void SHA1_Update(SHA_CTX *c, register const unsigned char *data, |
127 | SHA_CTX *c; | 118 | unsigned long len) |
128 | register unsigned char *data; | ||
129 | unsigned long len; | ||
130 | { | 119 | { |
131 | register ULONG *p; | 120 | register SHA_LONG *p; |
132 | int ew,ec,sw,sc; | 121 | int ew,ec,sw,sc; |
133 | ULONG l; | 122 | SHA_LONG l; |
134 | 123 | ||
135 | if (len == 0) return; | 124 | if (len == 0) return; |
136 | 125 | ||
@@ -158,7 +147,7 @@ unsigned long len; | |||
158 | } | 147 | } |
159 | len-=(SHA_CBLOCK-c->num); | 148 | len-=(SHA_CBLOCK-c->num); |
160 | 149 | ||
161 | sha1_block(c,p,64); | 150 | sha1_block(c,p,1); |
162 | c->num=0; | 151 | c->num=0; |
163 | /* drop through and do the rest */ | 152 | /* drop through and do the rest */ |
164 | } | 153 | } |
@@ -195,15 +184,15 @@ unsigned long len; | |||
195 | * copies it to a local array. I should be able to do this for | 184 | * copies it to a local array. I should be able to do this for |
196 | * the C version as well.... | 185 | * the C version as well.... |
197 | */ | 186 | */ |
198 | #if 1 | 187 | #if SHA_LONG_LOG2==2 |
199 | #if defined(B_ENDIAN) || defined(SHA1_ASM) | 188 | #if defined(B_ENDIAN) || defined(SHA1_ASM) |
200 | if ((((unsigned int)data)%sizeof(ULONG)) == 0) | 189 | if ((((unsigned long)data)%sizeof(SHA_LONG)) == 0) |
201 | { | 190 | { |
202 | sw=len/SHA_CBLOCK; | 191 | sw=len/SHA_CBLOCK; |
203 | if (sw) | 192 | if (sw) |
204 | { | 193 | { |
194 | sha1_block(c,(SHA_LONG *)data,sw); | ||
205 | sw*=SHA_CBLOCK; | 195 | sw*=SHA_CBLOCK; |
206 | sha1_block(c,(ULONG *)data,sw); | ||
207 | data+=sw; | 196 | data+=sw; |
208 | len-=sw; | 197 | len-=sw; |
209 | } | 198 | } |
@@ -215,35 +204,61 @@ unsigned long len; | |||
215 | p=c->data; | 204 | p=c->data; |
216 | while (len >= SHA_CBLOCK) | 205 | while (len >= SHA_CBLOCK) |
217 | { | 206 | { |
218 | #if defined(B_ENDIAN) || defined(L_ENDIAN) | 207 | #if SHA_LONG_LOG2==2 |
219 | if (p != (unsigned long *)data) | 208 | #if defined(B_ENDIAN) || defined(SHA1_ASM) |
209 | #define SHA_NO_TAIL_CODE | ||
210 | /* | ||
211 | * Basically we get here only when data happens | ||
212 | * to be unaligned. | ||
213 | */ | ||
214 | if (p != (SHA_LONG *)data) | ||
220 | memcpy(p,data,SHA_CBLOCK); | 215 | memcpy(p,data,SHA_CBLOCK); |
221 | data+=SHA_CBLOCK; | 216 | data+=SHA_CBLOCK; |
222 | # ifdef L_ENDIAN | 217 | sha1_block(c,p=c->data,1); |
223 | # ifndef SHA1_ASM /* Will not happen */ | 218 | len-=SHA_CBLOCK; |
224 | for (sw=(SHA_LBLOCK/4); sw; sw--) | 219 | #elif defined(L_ENDIAN) |
220 | #define BE_COPY(dst,src,i) { \ | ||
221 | l = ((SHA_LONG *)src)[i]; \ | ||
222 | Endian_Reverse32(l); \ | ||
223 | dst[i] = l; \ | ||
224 | } | ||
225 | if ((((unsigned long)data)%sizeof(SHA_LONG)) == 0) | ||
225 | { | 226 | { |
226 | Endian_Reverse32(p[0]); | 227 | for (sw=(SHA_LBLOCK/4); sw; sw--) |
227 | Endian_Reverse32(p[1]); | 228 | { |
228 | Endian_Reverse32(p[2]); | 229 | BE_COPY(p,data,0); |
229 | Endian_Reverse32(p[3]); | 230 | BE_COPY(p,data,1); |
230 | p+=4; | 231 | BE_COPY(p,data,2); |
232 | BE_COPY(p,data,3); | ||
233 | p+=4; | ||
234 | data += 4*sizeof(SHA_LONG); | ||
235 | } | ||
236 | sha1_block(c,p=c->data,1); | ||
237 | len-=SHA_CBLOCK; | ||
238 | continue; | ||
231 | } | 239 | } |
240 | #endif | ||
241 | #endif | ||
242 | #ifndef SHA_NO_TAIL_CODE | ||
243 | /* | ||
244 | * In addition to "sizeof(SHA_LONG)!= 4" case the | ||
245 | * following code covers unaligned access cases on | ||
246 | * little-endian machines. | ||
247 | * <appro@fy.chalmers.se> | ||
248 | */ | ||
232 | p=c->data; | 249 | p=c->data; |
233 | # endif | 250 | for (sw=(SHA_LBLOCK/4); sw; sw--) |
234 | # endif | ||
235 | #else | ||
236 | for (sw=(SHA_BLOCK/4); sw; sw--) | ||
237 | { | 251 | { |
238 | M_c2nl(data,l); *(p++)=l; | 252 | M_c2nl(data,l); p[0]=l; |
239 | M_c2nl(data,l); *(p++)=l; | 253 | M_c2nl(data,l); p[1]=l; |
240 | M_c2nl(data,l); *(p++)=l; | 254 | M_c2nl(data,l); p[2]=l; |
241 | M_c2nl(data,l); *(p++)=l; | 255 | M_c2nl(data,l); p[3]=l; |
256 | p+=4; | ||
242 | } | 257 | } |
243 | p=c->data; | 258 | p=c->data; |
244 | #endif | 259 | sha1_block(c,p,1); |
245 | sha1_block(c,p,64); | ||
246 | len-=SHA_CBLOCK; | 260 | len-=SHA_CBLOCK; |
261 | #endif | ||
247 | } | 262 | } |
248 | ec=(int)len; | 263 | ec=(int)len; |
249 | c->num=ec; | 264 | c->num=ec; |
@@ -256,52 +271,61 @@ unsigned long len; | |||
256 | p[sw]=l; | 271 | p[sw]=l; |
257 | } | 272 | } |
258 | 273 | ||
259 | void SHA1_Transform(c,b) | 274 | void SHA1_Transform(SHA_CTX *c, unsigned char *b) |
260 | SHA_CTX *c; | ||
261 | unsigned char *b; | ||
262 | { | 275 | { |
263 | ULONG p[16]; | 276 | SHA_LONG p[SHA_LBLOCK]; |
264 | #ifndef B_ENDIAN | ||
265 | ULONG *q; | ||
266 | int i; | ||
267 | #endif | ||
268 | 277 | ||
269 | #if defined(B_ENDIAN) || defined(L_ENDIAN) | 278 | #if SHA_LONG_LOG2==2 |
270 | memcpy(p,b,64); | 279 | #if defined(B_ENDIAN) || defined(SHA1_ASM) |
271 | #ifdef L_ENDIAN | 280 | memcpy(p,b,SHA_CBLOCK); |
272 | q=p; | 281 | sha1_block(c,p,1); |
273 | for (i=(SHA_LBLOCK/4); i; i--) | 282 | return; |
283 | #elif defined(L_ENDIAN) | ||
284 | if (((unsigned long)b%sizeof(SHA_LONG)) == 0) | ||
274 | { | 285 | { |
275 | Endian_Reverse32(q[0]); | 286 | SHA_LONG *q; |
276 | Endian_Reverse32(q[1]); | 287 | int i; |
277 | Endian_Reverse32(q[2]); | 288 | |
278 | Endian_Reverse32(q[3]); | 289 | q=p; |
279 | q+=4; | 290 | for (i=(SHA_LBLOCK/4); i; i--) |
291 | { | ||
292 | unsigned long l; | ||
293 | BE_COPY(q,b,0); /* BE_COPY was defined above */ | ||
294 | BE_COPY(q,b,1); | ||
295 | BE_COPY(q,b,2); | ||
296 | BE_COPY(q,b,3); | ||
297 | q+=4; | ||
298 | b+=4*sizeof(SHA_LONG); | ||
299 | } | ||
300 | sha1_block(c,p,1); | ||
301 | return; | ||
280 | } | 302 | } |
281 | #endif | 303 | #endif |
282 | #else | 304 | #endif |
283 | q=p; | 305 | #ifndef SHA_NO_TAIL_CODE /* defined above, see comment */ |
284 | for (i=(SHA_LBLOCK/4); i; i--) | ||
285 | { | 306 | { |
286 | ULONG l; | 307 | SHA_LONG *q; |
287 | c2nl(b,l); *(q++)=l; | 308 | int i; |
288 | c2nl(b,l); *(q++)=l; | 309 | |
289 | c2nl(b,l); *(q++)=l; | 310 | q=p; |
290 | c2nl(b,l); *(q++)=l; | 311 | for (i=(SHA_LBLOCK/4); i; i--) |
291 | } | 312 | { |
313 | SHA_LONG l; | ||
314 | c2nl(b,l); *(q++)=l; | ||
315 | c2nl(b,l); *(q++)=l; | ||
316 | c2nl(b,l); *(q++)=l; | ||
317 | c2nl(b,l); *(q++)=l; | ||
318 | } | ||
319 | sha1_block(c,p,1); | ||
320 | } | ||
292 | #endif | 321 | #endif |
293 | sha1_block(c,p,64); | ||
294 | } | 322 | } |
295 | 323 | ||
296 | #ifndef SHA1_ASM | 324 | #ifndef SHA1_ASM |
297 | 325 | static void sha1_block(SHA_CTX *c, register SHA_LONG *W, int num) | |
298 | void sha1_block(c, W, num) | ||
299 | SHA_CTX *c; | ||
300 | register unsigned long *W; | ||
301 | int num; | ||
302 | { | 326 | { |
303 | register ULONG A,B,C,D,E,T; | 327 | register SHA_LONG A,B,C,D,E,T; |
304 | ULONG X[16]; | 328 | SHA_LONG X[SHA_LBLOCK]; |
305 | 329 | ||
306 | A=c->h0; | 330 | A=c->h0; |
307 | B=c->h1; | 331 | B=c->h1; |
@@ -401,8 +425,7 @@ int num; | |||
401 | c->h3=(c->h3+B)&0xffffffffL; | 425 | c->h3=(c->h3+B)&0xffffffffL; |
402 | c->h4=(c->h4+C)&0xffffffffL; | 426 | c->h4=(c->h4+C)&0xffffffffL; |
403 | 427 | ||
404 | num-=64; | 428 | if (--num <= 0) break; |
405 | if (num <= 0) break; | ||
406 | 429 | ||
407 | A=c->h0; | 430 | A=c->h0; |
408 | B=c->h1; | 431 | B=c->h1; |
@@ -410,18 +433,21 @@ int num; | |||
410 | D=c->h3; | 433 | D=c->h3; |
411 | E=c->h4; | 434 | E=c->h4; |
412 | 435 | ||
413 | W+=16; | 436 | W+=SHA_LBLOCK; /* Note! This can happen only when sizeof(SHA_LONG) |
437 | * is 4. Whenever it's not the actual case this | ||
438 | * function is never called with num larger than 1 | ||
439 | * and we never advance down here. | ||
440 | * <appro@fy.chalmers.se> | ||
441 | */ | ||
414 | } | 442 | } |
415 | } | 443 | } |
416 | #endif | 444 | #endif |
417 | 445 | ||
418 | void SHA1_Final(md, c) | 446 | void SHA1_Final(unsigned char *md, SHA_CTX *c) |
419 | unsigned char *md; | ||
420 | SHA_CTX *c; | ||
421 | { | 447 | { |
422 | register int i,j; | 448 | register int i,j; |
423 | register ULONG l; | 449 | register SHA_LONG l; |
424 | register ULONG *p; | 450 | register SHA_LONG *p; |
425 | static unsigned char end[4]={0x80,0x00,0x00,0x00}; | 451 | static unsigned char end[4]={0x80,0x00,0x00,0x00}; |
426 | unsigned char *cp=end; | 452 | unsigned char *cp=end; |
427 | 453 | ||
@@ -441,18 +467,20 @@ SHA_CTX *c; | |||
441 | { | 467 | { |
442 | for (; i<SHA_LBLOCK; i++) | 468 | for (; i<SHA_LBLOCK; i++) |
443 | p[i]=0; | 469 | p[i]=0; |
444 | sha1_block(c,p,64); | 470 | sha1_block(c,p,1); |
445 | i=0; | 471 | i=0; |
446 | } | 472 | } |
447 | for (; i<(SHA_LBLOCK-2); i++) | 473 | for (; i<(SHA_LBLOCK-2); i++) |
448 | p[i]=0; | 474 | p[i]=0; |
449 | p[SHA_LBLOCK-2]=c->Nh; | 475 | p[SHA_LBLOCK-2]=c->Nh; |
450 | p[SHA_LBLOCK-1]=c->Nl; | 476 | p[SHA_LBLOCK-1]=c->Nl; |
451 | #if defined(L_ENDIAN) && defined(SHA1_ASM) | 477 | #if SHA_LONG_LOG2==2 |
478 | #if !defined(B_ENDIAN) && defined(SHA1_ASM) | ||
452 | Endian_Reverse32(p[SHA_LBLOCK-2]); | 479 | Endian_Reverse32(p[SHA_LBLOCK-2]); |
453 | Endian_Reverse32(p[SHA_LBLOCK-1]); | 480 | Endian_Reverse32(p[SHA_LBLOCK-1]); |
454 | #endif | 481 | #endif |
455 | sha1_block(c,p,64); | 482 | #endif |
483 | sha1_block(c,p,1); | ||
456 | cp=md; | 484 | cp=md; |
457 | l=c->h0; nl2c(l,cp); | 485 | l=c->h0; nl2c(l,cp); |
458 | l=c->h1; nl2c(l,cp); | 486 | l=c->h1; nl2c(l,cp); |
@@ -460,9 +488,11 @@ SHA_CTX *c; | |||
460 | l=c->h3; nl2c(l,cp); | 488 | l=c->h3; nl2c(l,cp); |
461 | l=c->h4; nl2c(l,cp); | 489 | l=c->h4; nl2c(l,cp); |
462 | 490 | ||
463 | /* clear stuff, sha1_block may be leaving some stuff on the stack | ||
464 | * but I'm not worried :-) */ | ||
465 | c->num=0; | 491 | c->num=0; |
466 | /* memset((char *)&c,0,sizeof(c));*/ | 492 | /* sha_block may be leaving some stuff on the stack |
493 | * but I'm not worried :-) | ||
494 | memset((void *)c,0,sizeof(SHA_CTX)); | ||
495 | */ | ||
467 | } | 496 | } |
497 | #endif | ||
468 | 498 | ||
diff --git a/src/lib/libcrypto/sha/sha1s.cpp b/src/lib/libcrypto/sha/sha1s.cpp index 0163377de6..3103e1871b 100644 --- a/src/lib/libcrypto/sha/sha1s.cpp +++ b/src/lib/libcrypto/sha/sha1s.cpp | |||
@@ -32,7 +32,7 @@ void GetTSC(unsigned long& tsc) | |||
32 | 32 | ||
33 | #include <stdio.h> | 33 | #include <stdio.h> |
34 | #include <stdlib.h> | 34 | #include <stdlib.h> |
35 | #include "sha.h" | 35 | #include <openssl/sha.h> |
36 | 36 | ||
37 | extern "C" { | 37 | extern "C" { |
38 | void sha1_block_x86(SHA_CTX *ctx, unsigned char *buffer,int num); | 38 | void sha1_block_x86(SHA_CTX *ctx, unsigned char *buffer,int num); |
diff --git a/src/lib/libcrypto/sha/sha1test.c b/src/lib/libcrypto/sha/sha1test.c index 3c62a218b4..9400ad2a61 100644 --- a/src/lib/libcrypto/sha/sha1test.c +++ b/src/lib/libcrypto/sha/sha1test.c | |||
@@ -59,7 +59,19 @@ | |||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <string.h> | 60 | #include <string.h> |
61 | #include <stdlib.h> | 61 | #include <stdlib.h> |
62 | #include "sha.h" | 62 | |
63 | #ifdef NO_SHA | ||
64 | int main(int argc, char *argv[]) | ||
65 | { | ||
66 | printf("No SHA support\n"); | ||
67 | return(0); | ||
68 | } | ||
69 | #else | ||
70 | #include <openssl/sha.h> | ||
71 | |||
72 | #ifdef CHARSET_EBCDIC | ||
73 | #include <openssl/ebcdic.h> | ||
74 | #endif | ||
63 | 75 | ||
64 | #undef SHA_0 /* FIPS 180 */ | 76 | #undef SHA_0 /* FIPS 180 */ |
65 | #define SHA_1 /* FIPS 180-1 */ | 77 | #define SHA_1 /* FIPS 180-1 */ |
@@ -87,15 +99,8 @@ char *bigret= | |||
87 | "34aa973cd4c4daa4f61eeb2bdbad27316534016f"; | 99 | "34aa973cd4c4daa4f61eeb2bdbad27316534016f"; |
88 | #endif | 100 | #endif |
89 | 101 | ||
90 | #ifndef NOPROTO | ||
91 | static char *pt(unsigned char *md); | 102 | static char *pt(unsigned char *md); |
92 | #else | 103 | int main(int argc, char *argv[]) |
93 | static char *pt(); | ||
94 | #endif | ||
95 | |||
96 | int main(argc,argv) | ||
97 | int argc; | ||
98 | char *argv[]; | ||
99 | { | 104 | { |
100 | int i,err=0; | 105 | int i,err=0; |
101 | unsigned char **P,**R; | 106 | unsigned char **P,**R; |
@@ -104,6 +109,11 @@ char *argv[]; | |||
104 | SHA_CTX c; | 109 | SHA_CTX c; |
105 | unsigned char md[SHA_DIGEST_LENGTH]; | 110 | unsigned char md[SHA_DIGEST_LENGTH]; |
106 | 111 | ||
112 | #ifdef CHARSET_EBCDIC | ||
113 | ebcdic2ascii(test[0], test[0], strlen(test[0])); | ||
114 | ebcdic2ascii(test[1], test[1], strlen(test[1])); | ||
115 | #endif | ||
116 | |||
107 | P=(unsigned char **)test; | 117 | P=(unsigned char **)test; |
108 | R=(unsigned char **)ret; | 118 | R=(unsigned char **)ret; |
109 | i=1; | 119 | i=1; |
@@ -124,6 +134,9 @@ char *argv[]; | |||
124 | } | 134 | } |
125 | 135 | ||
126 | memset(buf,'a',1000); | 136 | memset(buf,'a',1000); |
137 | #ifdef CHARSET_EBCDIC | ||
138 | ebcdic2ascii(buf, buf, 1000); | ||
139 | #endif /*CHARSET_EBCDIC*/ | ||
127 | SHA1_Init(&c); | 140 | SHA1_Init(&c); |
128 | for (i=0; i<1000; i++) | 141 | for (i=0; i<1000; i++) |
129 | SHA1_Update(&c,buf,1000); | 142 | SHA1_Update(&c,buf,1000); |
@@ -143,8 +156,7 @@ char *argv[]; | |||
143 | return(0); | 156 | return(0); |
144 | } | 157 | } |
145 | 158 | ||
146 | static char *pt(md) | 159 | static char *pt(unsigned char *md) |
147 | unsigned char *md; | ||
148 | { | 160 | { |
149 | int i; | 161 | int i; |
150 | static char buf[80]; | 162 | static char buf[80]; |
@@ -153,3 +165,4 @@ unsigned char *md; | |||
153 | sprintf(&(buf[i*2]),"%02x",md[i]); | 165 | sprintf(&(buf[i*2]),"%02x",md[i]); |
154 | return(buf); | 166 | return(buf); |
155 | } | 167 | } |
168 | #endif | ||
diff --git a/src/lib/libcrypto/sha/sha_dgst.c b/src/lib/libcrypto/sha/sha_dgst.c index 8ed533ea26..4df535360f 100644 --- a/src/lib/libcrypto/sha/sha_dgst.c +++ b/src/lib/libcrypto/sha/sha_dgst.c | |||
@@ -60,39 +60,44 @@ | |||
60 | #include <string.h> | 60 | #include <string.h> |
61 | #define SHA_0 | 61 | #define SHA_0 |
62 | #undef SHA_1 | 62 | #undef SHA_1 |
63 | #include "sha.h" | 63 | #include <openssl/sha.h> |
64 | #include "sha_locl.h" | 64 | #include "sha_locl.h" |
65 | #include <openssl/opensslv.h> | ||
65 | 66 | ||
66 | char *SHA_version="SHA part of SSLeay 0.9.0b 29-Jun-1998"; | 67 | #ifndef NO_SHA0 |
68 | char *SHA_version="SHA" OPENSSL_VERSION_PTEXT; | ||
67 | 69 | ||
68 | /* Implemented from SHA-0 document - The Secure Hash Algorithm | 70 | /* Implemented from SHA-0 document - The Secure Hash Algorithm |
69 | */ | 71 | */ |
70 | 72 | ||
71 | #define INIT_DATA_h0 (unsigned long)0x67452301L | 73 | #define INIT_DATA_h0 0x67452301UL |
72 | #define INIT_DATA_h1 (unsigned long)0xefcdab89L | 74 | #define INIT_DATA_h1 0xefcdab89UL |
73 | #define INIT_DATA_h2 (unsigned long)0x98badcfeL | 75 | #define INIT_DATA_h2 0x98badcfeUL |
74 | #define INIT_DATA_h3 (unsigned long)0x10325476L | 76 | #define INIT_DATA_h3 0x10325476UL |
75 | #define INIT_DATA_h4 (unsigned long)0xc3d2e1f0L | 77 | #define INIT_DATA_h4 0xc3d2e1f0UL |
76 | 78 | ||
77 | #define K_00_19 0x5a827999L | 79 | #define K_00_19 0x5a827999UL |
78 | #define K_20_39 0x6ed9eba1L | 80 | #define K_20_39 0x6ed9eba1UL |
79 | #define K_40_59 0x8f1bbcdcL | 81 | #define K_40_59 0x8f1bbcdcUL |
80 | #define K_60_79 0xca62c1d6L | 82 | #define K_60_79 0xca62c1d6UL |
81 | 83 | ||
82 | #ifndef NOPROTO | 84 | static void sha_block(SHA_CTX *c, register SHA_LONG *p, int num); |
83 | void sha_block(SHA_CTX *c, register unsigned long *p, int num); | 85 | |
86 | #if !defined(B_ENDIAN) && defined(SHA_ASM) | ||
87 | # define M_c2nl c2l | ||
88 | # define M_p_c2nl p_c2l | ||
89 | # define M_c2nl_p c2l_p | ||
90 | # define M_p_c2nl_p p_c2l_p | ||
91 | # define M_nl2c l2c | ||
84 | #else | 92 | #else |
85 | void sha_block(); | 93 | # define M_c2nl c2nl |
94 | # define M_p_c2nl p_c2nl | ||
95 | # define M_c2nl_p c2nl_p | ||
96 | # define M_p_c2nl_p p_c2nl_p | ||
97 | # define M_nl2c nl2c | ||
86 | #endif | 98 | #endif |
87 | 99 | ||
88 | #define M_c2nl c2nl | 100 | void SHA_Init(SHA_CTX *c) |
89 | #define M_p_c2nl p_c2nl | ||
90 | #define M_c2nl_p c2nl_p | ||
91 | #define M_p_c2nl_p p_c2nl_p | ||
92 | #define M_nl2c nl2c | ||
93 | |||
94 | void SHA_Init(c) | ||
95 | SHA_CTX *c; | ||
96 | { | 101 | { |
97 | c->h0=INIT_DATA_h0; | 102 | c->h0=INIT_DATA_h0; |
98 | c->h1=INIT_DATA_h1; | 103 | c->h1=INIT_DATA_h1; |
@@ -104,14 +109,12 @@ SHA_CTX *c; | |||
104 | c->num=0; | 109 | c->num=0; |
105 | } | 110 | } |
106 | 111 | ||
107 | void SHA_Update(c, data, len) | 112 | void SHA_Update(SHA_CTX *c, register const unsigned char *data, |
108 | SHA_CTX *c; | 113 | unsigned long len) |
109 | register unsigned char *data; | ||
110 | unsigned long len; | ||
111 | { | 114 | { |
112 | register ULONG *p; | 115 | register SHA_LONG *p; |
113 | int ew,ec,sw,sc; | 116 | int ew,ec,sw,sc; |
114 | ULONG l; | 117 | SHA_LONG l; |
115 | 118 | ||
116 | if (len == 0) return; | 119 | if (len == 0) return; |
117 | 120 | ||
@@ -139,7 +142,7 @@ unsigned long len; | |||
139 | } | 142 | } |
140 | len-=(SHA_CBLOCK-c->num); | 143 | len-=(SHA_CBLOCK-c->num); |
141 | 144 | ||
142 | sha_block(c,p,64); | 145 | sha_block(c,p,1); |
143 | c->num=0; | 146 | c->num=0; |
144 | /* drop through and do the rest */ | 147 | /* drop through and do the rest */ |
145 | } | 148 | } |
@@ -176,15 +179,15 @@ unsigned long len; | |||
176 | * copies it to a local array. I should be able to do this for | 179 | * copies it to a local array. I should be able to do this for |
177 | * the C version as well.... | 180 | * the C version as well.... |
178 | */ | 181 | */ |
179 | #if 1 | 182 | #if SHA_LONG_LOG2==2 |
180 | #if defined(B_ENDIAN) || defined(SHA_ASM) | 183 | #if defined(B_ENDIAN) || defined(SHA_ASM) |
181 | if ((((unsigned int)data)%sizeof(ULONG)) == 0) | 184 | if ((((unsigned long)data)%sizeof(SHA_LONG)) == 0) |
182 | { | 185 | { |
183 | sw=len/SHA_CBLOCK; | 186 | sw=len/SHA_CBLOCK; |
184 | if (sw) | 187 | if (sw) |
185 | { | 188 | { |
189 | sha_block(c,(SHA_LONG *)data,sw); | ||
186 | sw*=SHA_CBLOCK; | 190 | sw*=SHA_CBLOCK; |
187 | sha_block(c,(ULONG *)data,sw); | ||
188 | data+=sw; | 191 | data+=sw; |
189 | len-=sw; | 192 | len-=sw; |
190 | } | 193 | } |
@@ -196,35 +199,61 @@ unsigned long len; | |||
196 | p=c->data; | 199 | p=c->data; |
197 | while (len >= SHA_CBLOCK) | 200 | while (len >= SHA_CBLOCK) |
198 | { | 201 | { |
199 | #if defined(B_ENDIAN) || defined(L_ENDIAN) | 202 | #if SHA_LONG_LOG2==2 |
200 | if (p != (unsigned long *)data) | 203 | #if defined(B_ENDIAN) || defined(SHA_ASM) |
204 | #define SHA_NO_TAIL_CODE | ||
205 | /* | ||
206 | * Basically we get here only when data happens | ||
207 | * to be unaligned. | ||
208 | */ | ||
209 | if (p != (SHA_LONG *)data) | ||
201 | memcpy(p,data,SHA_CBLOCK); | 210 | memcpy(p,data,SHA_CBLOCK); |
202 | data+=SHA_CBLOCK; | 211 | data+=SHA_CBLOCK; |
203 | # ifdef L_ENDIAN | 212 | sha_block(c,p=c->data,1); |
204 | # ifndef SHA_ASM /* Will not happen */ | 213 | len-=SHA_CBLOCK; |
205 | for (sw=(SHA_LBLOCK/4); sw; sw--) | 214 | #elif defined(L_ENDIAN) |
215 | #define BE_COPY(dst,src,i) { \ | ||
216 | l = ((SHA_LONG *)src)[i]; \ | ||
217 | Endian_Reverse32(l); \ | ||
218 | dst[i] = l; \ | ||
219 | } | ||
220 | if ((((unsigned long)data)%sizeof(SHA_LONG)) == 0) | ||
206 | { | 221 | { |
207 | Endian_Reverse32(p[0]); | 222 | for (sw=(SHA_LBLOCK/4); sw; sw--) |
208 | Endian_Reverse32(p[1]); | 223 | { |
209 | Endian_Reverse32(p[2]); | 224 | BE_COPY(p,data,0); |
210 | Endian_Reverse32(p[3]); | 225 | BE_COPY(p,data,1); |
211 | p+=4; | 226 | BE_COPY(p,data,2); |
227 | BE_COPY(p,data,3); | ||
228 | p+=4; | ||
229 | data += 4*sizeof(SHA_LONG); | ||
230 | } | ||
231 | sha_block(c,p=c->data,1); | ||
232 | len-=SHA_CBLOCK; | ||
233 | continue; | ||
212 | } | 234 | } |
235 | #endif | ||
236 | #endif | ||
237 | #ifndef SHA_NO_TAIL_CODE | ||
238 | /* | ||
239 | * In addition to "sizeof(SHA_LONG)!= 4" case the | ||
240 | * following code covers unaligned access cases on | ||
241 | * little-endian machines. | ||
242 | * <appro@fy.chalmers.se> | ||
243 | */ | ||
213 | p=c->data; | 244 | p=c->data; |
214 | # endif | 245 | for (sw=(SHA_LBLOCK/4); sw; sw--) |
215 | # endif | ||
216 | #else | ||
217 | for (sw=(SHA_BLOCK/4); sw; sw--) | ||
218 | { | 246 | { |
219 | M_c2nl(data,l); *(p++)=l; | 247 | M_c2nl(data,l); p[0]=l; |
220 | M_c2nl(data,l); *(p++)=l; | 248 | M_c2nl(data,l); p[1]=l; |
221 | M_c2nl(data,l); *(p++)=l; | 249 | M_c2nl(data,l); p[2]=l; |
222 | M_c2nl(data,l); *(p++)=l; | 250 | M_c2nl(data,l); p[3]=l; |
251 | p+=4; | ||
223 | } | 252 | } |
224 | p=c->data; | 253 | p=c->data; |
225 | #endif | 254 | sha_block(c,p,1); |
226 | sha_block(c,p,64); | ||
227 | len-=SHA_CBLOCK; | 255 | len-=SHA_CBLOCK; |
256 | #endif | ||
228 | } | 257 | } |
229 | ec=(int)len; | 258 | ec=(int)len; |
230 | c->num=ec; | 259 | c->num=ec; |
@@ -237,50 +266,61 @@ unsigned long len; | |||
237 | p[sw]=l; | 266 | p[sw]=l; |
238 | } | 267 | } |
239 | 268 | ||
240 | void SHA_Transform(c,b) | 269 | void SHA_Transform(SHA_CTX *c, unsigned char *b) |
241 | SHA_CTX *c; | ||
242 | unsigned char *b; | ||
243 | { | 270 | { |
244 | ULONG p[16]; | 271 | SHA_LONG p[SHA_LBLOCK]; |
245 | #if !defined(B_ENDIAN) | ||
246 | ULONG *q; | ||
247 | int i; | ||
248 | #endif | ||
249 | 272 | ||
250 | #if defined(B_ENDIAN) || defined(L_ENDIAN) | 273 | #if SHA_LONG_LOG2==2 |
251 | memcpy(p,b,64); | 274 | #if defined(B_ENDIAN) || defined(SHA_ASM) |
252 | #ifdef L_ENDIAN | 275 | memcpy(p,b,SHA_CBLOCK); |
253 | q=p; | 276 | sha_block(c,p,1); |
254 | for (i=(SHA_LBLOCK/4); i; i--) | 277 | return; |
278 | #elif defined(L_ENDIAN) | ||
279 | if (((unsigned long)b%sizeof(SHA_LONG)) == 0) | ||
255 | { | 280 | { |
256 | Endian_Reverse32(q[0]); | 281 | SHA_LONG *q; |
257 | Endian_Reverse32(q[1]); | 282 | int i; |
258 | Endian_Reverse32(q[2]); | 283 | |
259 | Endian_Reverse32(q[3]); | 284 | q=p; |
260 | q+=4; | 285 | for (i=(SHA_LBLOCK/4); i; i--) |
286 | { | ||
287 | unsigned long l; | ||
288 | BE_COPY(q,b,0); /* BE_COPY was defined above */ | ||
289 | BE_COPY(q,b,1); | ||
290 | BE_COPY(q,b,2); | ||
291 | BE_COPY(q,b,3); | ||
292 | q+=4; | ||
293 | b+=4*sizeof(SHA_LONG); | ||
294 | } | ||
295 | sha_block(c,p,1); | ||
296 | return; | ||
261 | } | 297 | } |
262 | #endif | 298 | #endif |
263 | #else | 299 | #endif |
264 | q=p; | 300 | #ifndef SHA_NO_TAIL_CODE /* defined above, see comment */ |
265 | for (i=(SHA_LBLOCK/4); i; i--) | ||
266 | { | 301 | { |
267 | ULONG l; | 302 | SHA_LONG *q; |
268 | c2nl(b,l); *(q++)=l; | 303 | int i; |
269 | c2nl(b,l); *(q++)=l; | 304 | |
270 | c2nl(b,l); *(q++)=l; | 305 | q=p; |
271 | c2nl(b,l); *(q++)=l; | 306 | for (i=(SHA_LBLOCK/4); i; i--) |
272 | } | 307 | { |
308 | SHA_LONG l; | ||
309 | c2nl(b,l); *(q++)=l; | ||
310 | c2nl(b,l); *(q++)=l; | ||
311 | c2nl(b,l); *(q++)=l; | ||
312 | c2nl(b,l); *(q++)=l; | ||
313 | } | ||
314 | sha_block(c,p,1); | ||
315 | } | ||
273 | #endif | 316 | #endif |
274 | sha_block(c,p,64); | ||
275 | } | 317 | } |
276 | 318 | ||
277 | void sha_block(c, W, num) | 319 | #ifndef SHA_ASM |
278 | SHA_CTX *c; | 320 | static void sha_block(SHA_CTX *c, register SHA_LONG *W, int num) |
279 | register unsigned long *W; | ||
280 | int num; | ||
281 | { | 321 | { |
282 | register ULONG A,B,C,D,E,T; | 322 | register SHA_LONG A,B,C,D,E,T; |
283 | ULONG X[16]; | 323 | SHA_LONG X[SHA_LBLOCK]; |
284 | 324 | ||
285 | A=c->h0; | 325 | A=c->h0; |
286 | B=c->h1; | 326 | B=c->h1; |
@@ -380,8 +420,7 @@ int num; | |||
380 | c->h3=(c->h3+B)&0xffffffffL; | 420 | c->h3=(c->h3+B)&0xffffffffL; |
381 | c->h4=(c->h4+C)&0xffffffffL; | 421 | c->h4=(c->h4+C)&0xffffffffL; |
382 | 422 | ||
383 | num-=64; | 423 | if (--num <= 0) break; |
384 | if (num <= 0) break; | ||
385 | 424 | ||
386 | A=c->h0; | 425 | A=c->h0; |
387 | B=c->h1; | 426 | B=c->h1; |
@@ -389,17 +428,21 @@ int num; | |||
389 | D=c->h3; | 428 | D=c->h3; |
390 | E=c->h4; | 429 | E=c->h4; |
391 | 430 | ||
392 | W+=16; | 431 | W+=SHA_LBLOCK; /* Note! This can happen only when sizeof(SHA_LONG) |
432 | * is 4. Whenever it's not the actual case this | ||
433 | * function is never called with num larger than 1 | ||
434 | * and we never advance down here. | ||
435 | * <appro@fy.chalmers.se> | ||
436 | */ | ||
393 | } | 437 | } |
394 | } | 438 | } |
439 | #endif | ||
395 | 440 | ||
396 | void SHA_Final(md, c) | 441 | void SHA_Final(unsigned char *md, SHA_CTX *c) |
397 | unsigned char *md; | ||
398 | SHA_CTX *c; | ||
399 | { | 442 | { |
400 | register int i,j; | 443 | register int i,j; |
401 | register ULONG l; | 444 | register SHA_LONG l; |
402 | register ULONG *p; | 445 | register SHA_LONG *p; |
403 | static unsigned char end[4]={0x80,0x00,0x00,0x00}; | 446 | static unsigned char end[4]={0x80,0x00,0x00,0x00}; |
404 | unsigned char *cp=end; | 447 | unsigned char *cp=end; |
405 | 448 | ||
@@ -419,14 +462,20 @@ SHA_CTX *c; | |||
419 | { | 462 | { |
420 | for (; i<SHA_LBLOCK; i++) | 463 | for (; i<SHA_LBLOCK; i++) |
421 | p[i]=0; | 464 | p[i]=0; |
422 | sha_block(c,p,64); | 465 | sha_block(c,p,1); |
423 | i=0; | 466 | i=0; |
424 | } | 467 | } |
425 | for (; i<(SHA_LBLOCK-2); i++) | 468 | for (; i<(SHA_LBLOCK-2); i++) |
426 | p[i]=0; | 469 | p[i]=0; |
427 | p[SHA_LBLOCK-2]=c->Nh; | 470 | p[SHA_LBLOCK-2]=c->Nh; |
428 | p[SHA_LBLOCK-1]=c->Nl; | 471 | p[SHA_LBLOCK-1]=c->Nl; |
429 | sha_block(c,p,64); | 472 | #if SHA_LONG_LOG2==2 |
473 | #if !defined(B_ENDIAN) && defined(SHA_ASM) | ||
474 | Endian_Reverse32(p[SHA_LBLOCK-2]); | ||
475 | Endian_Reverse32(p[SHA_LBLOCK-1]); | ||
476 | #endif | ||
477 | #endif | ||
478 | sha_block(c,p,1); | ||
430 | cp=md; | 479 | cp=md; |
431 | l=c->h0; nl2c(l,cp); | 480 | l=c->h0; nl2c(l,cp); |
432 | l=c->h1; nl2c(l,cp); | 481 | l=c->h1; nl2c(l,cp); |
@@ -434,9 +483,10 @@ SHA_CTX *c; | |||
434 | l=c->h3; nl2c(l,cp); | 483 | l=c->h3; nl2c(l,cp); |
435 | l=c->h4; nl2c(l,cp); | 484 | l=c->h4; nl2c(l,cp); |
436 | 485 | ||
437 | /* clear stuff, sha_block may be leaving some stuff on the stack | ||
438 | * but I'm not worried :-) */ | ||
439 | c->num=0; | 486 | c->num=0; |
440 | /* memset((char *)&c,0,sizeof(c));*/ | 487 | /* sha_block may be leaving some stuff on the stack |
488 | * but I'm not worried :-) | ||
489 | memset((void *)c,0,sizeof(SHA_CTX)); | ||
490 | */ | ||
441 | } | 491 | } |
442 | 492 | #endif | |
diff --git a/src/lib/libcrypto/sha/sha_locl.h b/src/lib/libcrypto/sha/sha_locl.h index 2814ad15fa..6646a8915b 100644 --- a/src/lib/libcrypto/sha/sha_locl.h +++ b/src/lib/libcrypto/sha/sha_locl.h | |||
@@ -59,6 +59,8 @@ | |||
59 | #include <stdlib.h> | 59 | #include <stdlib.h> |
60 | #include <string.h> | 60 | #include <string.h> |
61 | 61 | ||
62 | #include <openssl/opensslconf.h> | ||
63 | |||
62 | #ifdef undef | 64 | #ifdef undef |
63 | /* one or the other needs to be defined */ | 65 | /* one or the other needs to be defined */ |
64 | #ifndef SHA_1 /* FIPE 180-1 */ | 66 | #ifndef SHA_1 /* FIPE 180-1 */ |
@@ -66,14 +68,6 @@ | |||
66 | #endif | 68 | #endif |
67 | #endif | 69 | #endif |
68 | 70 | ||
69 | #define ULONG unsigned long | ||
70 | #define UCHAR unsigned char | ||
71 | #define UINT unsigned int | ||
72 | |||
73 | #ifdef NOCONST | ||
74 | #define const | ||
75 | #endif | ||
76 | |||
77 | #undef c2nl | 71 | #undef c2nl |
78 | #define c2nl(c,l) (l =(((unsigned long)(*((c)++)))<<24), \ | 72 | #define c2nl(c,l) (l =(((unsigned long)(*((c)++)))<<24), \ |
79 | l|=(((unsigned long)(*((c)++)))<<16), \ | 73 | l|=(((unsigned long)(*((c)++)))<<16), \ |
@@ -166,30 +160,79 @@ | |||
166 | *((c)++)=(unsigned char)(((l)>>16)&0xff), \ | 160 | *((c)++)=(unsigned char)(((l)>>16)&0xff), \ |
167 | *((c)++)=(unsigned char)(((l)>>24)&0xff)) | 161 | *((c)++)=(unsigned char)(((l)>>24)&0xff)) |
168 | 162 | ||
163 | #ifndef SHA_LONG_LOG2 | ||
164 | #define SHA_LONG_LOG2 2 /* default to 32 bits */ | ||
165 | #endif | ||
166 | |||
169 | #undef ROTATE | 167 | #undef ROTATE |
168 | #undef Endian_Reverse32 | ||
170 | #if defined(WIN32) | 169 | #if defined(WIN32) |
171 | #define ROTATE(a,n) _lrotl(a,n) | 170 | #define ROTATE(a,n) _lrotl(a,n) |
172 | #else | 171 | #elif defined(__GNUC__) && !defined(PEDANTIC) |
173 | #define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n)))) | 172 | /* some inline assembler templates by <appro@fy.chalmers.se> */ |
173 | #if defined(__i386) && !defined(NO_ASM) | ||
174 | #define ROTATE(a,n) ({ register unsigned int ret; \ | ||
175 | asm ("roll %1,%0" \ | ||
176 | : "=r"(ret) \ | ||
177 | : "I"(n), "0"(a) \ | ||
178 | : "cc"); \ | ||
179 | ret; \ | ||
180 | }) | ||
181 | #ifndef I386_ONLY | ||
182 | #define Endian_Reverse32(a) \ | ||
183 | { register unsigned int ltmp=(a); \ | ||
184 | asm ("bswapl %0" \ | ||
185 | : "=r"(ltmp) : "0"(ltmp)); \ | ||
186 | (a)=ltmp; \ | ||
187 | } | ||
188 | #endif | ||
189 | #elif defined(__powerpc) | ||
190 | #define ROTATE(a,n) ({ register unsigned int ret; \ | ||
191 | asm ("rlwinm %0,%1,%2,0,31" \ | ||
192 | : "=r"(ret) \ | ||
193 | : "r"(a), "I"(n)); \ | ||
194 | ret; \ | ||
195 | }) | ||
196 | /* Endian_Reverse32 is not needed for PowerPC */ | ||
197 | #endif | ||
174 | #endif | 198 | #endif |
175 | 199 | ||
176 | /* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */ | 200 | /* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */ |
177 | #if defined(WIN32) | 201 | #ifdef ROTATE |
202 | #ifndef Endian_Reverse32 | ||
178 | /* 5 instructions with rotate instruction, else 9 */ | 203 | /* 5 instructions with rotate instruction, else 9 */ |
179 | #define Endian_Reverse32(a) \ | 204 | #define Endian_Reverse32(a) \ |
180 | { \ | 205 | { \ |
181 | unsigned long l=(a); \ | 206 | unsigned long t=(a); \ |
182 | (a)=((ROTATE(l,8)&0x00FF00FF)|(ROTATE(l,24)&0xFF00FF00)); \ | 207 | (a)=((ROTATE(t,8)&0x00FF00FF)|(ROTATE((t&0x00FF00FF),24))); \ |
183 | } | 208 | } |
209 | #endif | ||
184 | #else | 210 | #else |
211 | #define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n)))) | ||
212 | #ifndef Endian_Reverse32 | ||
185 | /* 6 instructions with rotate instruction, else 8 */ | 213 | /* 6 instructions with rotate instruction, else 8 */ |
186 | #define Endian_Reverse32(a) \ | 214 | #define Endian_Reverse32(a) \ |
187 | { \ | 215 | { \ |
188 | unsigned long l=(a); \ | 216 | unsigned long t=(a); \ |
189 | l=(((l&0xFF00FF00)>>8L)|((l&0x00FF00FF)<<8L)); \ | 217 | t=(((t>>8)&0x00FF00FF)|((t&0x00FF00FF)<<8)); \ |
190 | (a)=ROTATE(l,16L); \ | 218 | (a)=ROTATE(t,16); \ |
191 | } | 219 | } |
192 | #endif | 220 | #endif |
221 | /* | ||
222 | * Originally the middle line started with l=(((l&0xFF00FF00)>>8)|... | ||
223 | * It's rewritten as above for two reasons: | ||
224 | * - RISCs aren't good at long constants and have to explicitely | ||
225 | * compose 'em with several (well, usually 2) instructions in a | ||
226 | * register before performing the actual operation and (as you | ||
227 | * already realized:-) having same constant should inspire the | ||
228 | * compiler to permanently allocate the only register for it; | ||
229 | * - most modern CPUs have two ALUs, but usually only one has | ||
230 | * circuitry for shifts:-( this minor tweak inspires compiler | ||
231 | * to schedule shift instructions in a better way... | ||
232 | * | ||
233 | * <appro@fy.chalmers.se> | ||
234 | */ | ||
235 | #endif | ||
193 | 236 | ||
194 | /* As pointed out by Wei Dai <weidai@eskimo.com>, F() below can be | 237 | /* As pointed out by Wei Dai <weidai@eskimo.com>, F() below can be |
195 | * simplified to the code in F_00_19. Wei attributes these optimisations | 238 | * simplified to the code in F_00_19. Wei attributes these optimisations |
@@ -203,13 +246,12 @@ | |||
203 | #define F_40_59(b,c,d) (((b) & (c)) | (((b)|(c)) & (d))) | 246 | #define F_40_59(b,c,d) (((b) & (c)) | (((b)|(c)) & (d))) |
204 | #define F_60_79(b,c,d) F_20_39(b,c,d) | 247 | #define F_60_79(b,c,d) F_20_39(b,c,d) |
205 | 248 | ||
206 | #ifdef SHA_0 | ||
207 | #undef Xupdate | 249 | #undef Xupdate |
250 | #ifdef SHA_0 | ||
208 | #define Xupdate(a,i,ia,ib,ic,id) X[(i)&0x0f]=(a)=\ | 251 | #define Xupdate(a,i,ia,ib,ic,id) X[(i)&0x0f]=(a)=\ |
209 | (ia[(i)&0x0f]^ib[((i)+2)&0x0f]^ic[((i)+8)&0x0f]^id[((i)+13)&0x0f]); | 252 | (ia[(i)&0x0f]^ib[((i)+2)&0x0f]^ic[((i)+8)&0x0f]^id[((i)+13)&0x0f]); |
210 | #endif | 253 | #endif |
211 | #ifdef SHA_1 | 254 | #ifdef SHA_1 |
212 | #undef Xupdate | ||
213 | #define Xupdate(a,i,ia,ib,ic,id) (a)=\ | 255 | #define Xupdate(a,i,ia,ib,ic,id) (a)=\ |
214 | (ia[(i)&0x0f]^ib[((i)+2)&0x0f]^ic[((i)+8)&0x0f]^id[((i)+13)&0x0f]);\ | 256 | (ia[(i)&0x0f]^ib[((i)+2)&0x0f]^ic[((i)+8)&0x0f]^id[((i)+13)&0x0f]);\ |
215 | X[(i)&0x0f]=(a)=ROTATE((a),1); | 257 | X[(i)&0x0f]=(a)=ROTATE((a),1); |
diff --git a/src/lib/libcrypto/sha/sha_one.c b/src/lib/libcrypto/sha/sha_one.c index 18ab7f61bc..2d955de162 100644 --- a/src/lib/libcrypto/sha/sha_one.c +++ b/src/lib/libcrypto/sha/sha_one.c | |||
@@ -58,12 +58,10 @@ | |||
58 | 58 | ||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <string.h> | 60 | #include <string.h> |
61 | #include "sha.h" | 61 | #include <openssl/sha.h> |
62 | 62 | ||
63 | unsigned char *SHA(d, n, md) | 63 | #ifndef NO_SHA0 |
64 | unsigned char *d; | 64 | unsigned char *SHA(const unsigned char *d, unsigned long n, unsigned char *md) |
65 | unsigned long n; | ||
66 | unsigned char *md; | ||
67 | { | 65 | { |
68 | SHA_CTX c; | 66 | SHA_CTX c; |
69 | static unsigned char m[SHA_DIGEST_LENGTH]; | 67 | static unsigned char m[SHA_DIGEST_LENGTH]; |
@@ -75,3 +73,4 @@ unsigned char *md; | |||
75 | memset(&c,0,sizeof(c)); | 73 | memset(&c,0,sizeof(c)); |
76 | return(md); | 74 | return(md); |
77 | } | 75 | } |
76 | #endif | ||
diff --git a/src/lib/libcrypto/sha/sha_sgst.c b/src/lib/libcrypto/sha/sha_sgst.c deleted file mode 100644 index 8a16801328..0000000000 --- a/src/lib/libcrypto/sha/sha_sgst.c +++ /dev/null | |||
@@ -1,246 +0,0 @@ | |||
1 | /* crypto/sha/sha_sgst.c */ | ||
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | ||
3 | * All rights reserved. | ||
4 | * | ||
5 | * This package is an SSL implementation written | ||
6 | * by Eric Young (eay@cryptsoft.com). | ||
7 | * The implementation was written so as to conform with Netscapes SSL. | ||
8 | * | ||
9 | * This library is free for commercial and non-commercial use as long as | ||
10 | * the following conditions are aheared to. The following conditions | ||
11 | * apply to all code found in this distribution, be it the RC4, RSA, | ||
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | ||
13 | * included with this distribution is covered by the same copyright terms | ||
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | ||
15 | * | ||
16 | * Copyright remains Eric Young's, and as such any Copyright notices in | ||
17 | * the code are not to be removed. | ||
18 | * If this package is used in a product, Eric Young should be given attribution | ||
19 | * as the author of the parts of the library used. | ||
20 | * This can be in the form of a textual message at program startup or | ||
21 | * in documentation (online or textual) provided with the package. | ||
22 | * | ||
23 | * Redistribution and use in source and binary forms, with or without | ||
24 | * modification, are permitted provided that the following conditions | ||
25 | * are met: | ||
26 | * 1. Redistributions of source code must retain the copyright | ||
27 | * notice, this list of conditions and the following disclaimer. | ||
28 | * 2. Redistributions in binary form must reproduce the above copyright | ||
29 | * notice, this list of conditions and the following disclaimer in the | ||
30 | * documentation and/or other materials provided with the distribution. | ||
31 | * 3. All advertising materials mentioning features or use of this software | ||
32 | * must display the following acknowledgement: | ||
33 | * "This product includes cryptographic software written by | ||
34 | * Eric Young (eay@cryptsoft.com)" | ||
35 | * The word 'cryptographic' can be left out if the rouines from the library | ||
36 | * being used are not cryptographic related :-). | ||
37 | * 4. If you include any Windows specific code (or a derivative thereof) from | ||
38 | * the apps directory (application code) you must include an acknowledgement: | ||
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | ||
40 | * | ||
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | ||
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
51 | * SUCH DAMAGE. | ||
52 | * | ||
53 | * The licence and distribution terms for any publically available version or | ||
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | ||
55 | * copied and put under another distribution licence | ||
56 | * [including the GNU Public Licence.] | ||
57 | */ | ||
58 | |||
59 | #include <stdlib.h> | ||
60 | #include <string.h> | ||
61 | |||
62 | #ifdef undef | ||
63 | /* one or the other needs to be defined */ | ||
64 | #ifndef SHA_1 /* FIPE 180-1 */ | ||
65 | #define SHA_0 /* FIPS 180 */ | ||
66 | #endif | ||
67 | #endif | ||
68 | |||
69 | #define ULONG unsigned long | ||
70 | #define UCHAR unsigned char | ||
71 | #define UINT unsigned int | ||
72 | |||
73 | #ifdef NOCONST | ||
74 | #define const | ||
75 | #endif | ||
76 | |||
77 | #undef c2nl | ||
78 | #define c2nl(c,l) (l =(((unsigned long)(*((c)++)))<<24), \ | ||
79 | l|=(((unsigned long)(*((c)++)))<<16), \ | ||
80 | l|=(((unsigned long)(*((c)++)))<< 8), \ | ||
81 | l|=(((unsigned long)(*((c)++))) )) | ||
82 | |||
83 | #undef p_c2nl | ||
84 | #define p_c2nl(c,l,n) { \ | ||
85 | switch (n) { \ | ||
86 | case 0: l =((unsigned long)(*((c)++)))<<24; \ | ||
87 | case 1: l|=((unsigned long)(*((c)++)))<<16; \ | ||
88 | case 2: l|=((unsigned long)(*((c)++)))<< 8; \ | ||
89 | case 3: l|=((unsigned long)(*((c)++))); \ | ||
90 | } \ | ||
91 | } | ||
92 | |||
93 | #undef c2nl_p | ||
94 | /* NOTE the pointer is not incremented at the end of this */ | ||
95 | #define c2nl_p(c,l,n) { \ | ||
96 | l=0; \ | ||
97 | (c)+=n; \ | ||
98 | switch (n) { \ | ||
99 | case 3: l =((unsigned long)(*(--(c))))<< 8; \ | ||
100 | case 2: l|=((unsigned long)(*(--(c))))<<16; \ | ||
101 | case 1: l|=((unsigned long)(*(--(c))))<<24; \ | ||
102 | } \ | ||
103 | } | ||
104 | |||
105 | #undef p_c2nl_p | ||
106 | #define p_c2nl_p(c,l,sc,len) { \ | ||
107 | switch (sc) \ | ||
108 | { \ | ||
109 | case 0: l =((unsigned long)(*((c)++)))<<24; \ | ||
110 | if (--len == 0) break; \ | ||
111 | case 1: l|=((unsigned long)(*((c)++)))<<16; \ | ||
112 | if (--len == 0) break; \ | ||
113 | case 2: l|=((unsigned long)(*((c)++)))<< 8; \ | ||
114 | } \ | ||
115 | } | ||
116 | |||
117 | #undef nl2c | ||
118 | #define nl2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \ | ||
119 | *((c)++)=(unsigned char)(((l)>>16)&0xff), \ | ||
120 | *((c)++)=(unsigned char)(((l)>> 8)&0xff), \ | ||
121 | *((c)++)=(unsigned char)(((l) )&0xff)) | ||
122 | |||
123 | #undef c2l | ||
124 | #define c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \ | ||
125 | l|=(((unsigned long)(*((c)++)))<< 8), \ | ||
126 | l|=(((unsigned long)(*((c)++)))<<16), \ | ||
127 | l|=(((unsigned long)(*((c)++)))<<24)) | ||
128 | |||
129 | #undef p_c2l | ||
130 | #define p_c2l(c,l,n) { \ | ||
131 | switch (n) { \ | ||
132 | case 0: l =((unsigned long)(*((c)++))); \ | ||
133 | case 1: l|=((unsigned long)(*((c)++)))<< 8; \ | ||
134 | case 2: l|=((unsigned long)(*((c)++)))<<16; \ | ||
135 | case 3: l|=((unsigned long)(*((c)++)))<<24; \ | ||
136 | } \ | ||
137 | } | ||
138 | |||
139 | #undef c2l_p | ||
140 | /* NOTE the pointer is not incremented at the end of this */ | ||
141 | #define c2l_p(c,l,n) { \ | ||
142 | l=0; \ | ||
143 | (c)+=n; \ | ||
144 | switch (n) { \ | ||
145 | case 3: l =((unsigned long)(*(--(c))))<<16; \ | ||
146 | case 2: l|=((unsigned long)(*(--(c))))<< 8; \ | ||
147 | case 1: l|=((unsigned long)(*(--(c)))); \ | ||
148 | } \ | ||
149 | } | ||
150 | |||
151 | #undef p_c2l_p | ||
152 | #define p_c2l_p(c,l,sc,len) { \ | ||
153 | switch (sc) \ | ||
154 | { \ | ||
155 | case 0: l =((unsigned long)(*((c)++))); \ | ||
156 | if (--len == 0) break; \ | ||
157 | case 1: l|=((unsigned long)(*((c)++)))<< 8; \ | ||
158 | if (--len == 0) break; \ | ||
159 | case 2: l|=((unsigned long)(*((c)++)))<<16; \ | ||
160 | } \ | ||
161 | } | ||
162 | |||
163 | #undef l2c | ||
164 | #define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \ | ||
165 | *((c)++)=(unsigned char)(((l)>> 8)&0xff), \ | ||
166 | *((c)++)=(unsigned char)(((l)>>16)&0xff), \ | ||
167 | *((c)++)=(unsigned char)(((l)>>24)&0xff)) | ||
168 | |||
169 | #undef ROTATE | ||
170 | #if defined(WIN32) | ||
171 | #define ROTATE(a,n) _lrotl(a,n) | ||
172 | #else | ||
173 | #define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n)))) | ||
174 | #endif | ||
175 | |||
176 | /* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */ | ||
177 | #if defined(WIN32) | ||
178 | /* 5 instructions with rotate instruction, else 9 */ | ||
179 | #define Endian_Reverse32(a) \ | ||
180 | { \ | ||
181 | unsigned long l=(a); \ | ||
182 | (a)=((ROTATE(l,8)&0x00FF00FF)|(ROTATE(l,24)&0xFF00FF00)); \ | ||
183 | } | ||
184 | #else | ||
185 | /* 6 instructions with rotate instruction, else 8 */ | ||
186 | #define Endian_Reverse32(a) \ | ||
187 | { \ | ||
188 | unsigned long l=(a); \ | ||
189 | l=(((l&0xFF00FF00)>>8L)|((l&0x00FF00FF)<<8L)); \ | ||
190 | (a)=ROTATE(l,16L); \ | ||
191 | } | ||
192 | #endif | ||
193 | |||
194 | /* As pointed out by Wei Dai <weidai@eskimo.com>, F() below can be | ||
195 | * simplified to the code in F_00_19. Wei attributes these optimisations | ||
196 | * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel. | ||
197 | * #define F(x,y,z) (((x) & (y)) | ((~(x)) & (z))) | ||
198 | * I've just become aware of another tweak to be made, again from Wei Dai, | ||
199 | * in F_40_59, (x&a)|(y&a) -> (x|y)&a | ||
200 | */ | ||
201 | #define F_00_19(b,c,d) ((((c) ^ (d)) & (b)) ^ (d)) | ||
202 | #define F_20_39(b,c,d) ((b) ^ (c) ^ (d)) | ||
203 | #define F_40_59(b,c,d) (((b) & (c)) | (((b)|(c)) & (d))) | ||
204 | #define F_60_79(b,c,d) F_20_39(b,c,d) | ||
205 | |||
206 | #ifdef SHA_0 | ||
207 | #undef Xupdate | ||
208 | #define Xupdate(a,i,ia,ib,ic,id) X[(i)&0x0f]=(a)=\ | ||
209 | (ia[(i)&0x0f]^ib[((i)+2)&0x0f]^ic[((i)+8)&0x0f]^id[((i)+13)&0x0f]); | ||
210 | #endif | ||
211 | #ifdef SHA_1 | ||
212 | #undef Xupdate | ||
213 | #define Xupdate(a,i,ia,ib,ic,id) (a)=\ | ||
214 | (ia[(i)&0x0f]^ib[((i)+2)&0x0f]^ic[((i)+8)&0x0f]^id[((i)+13)&0x0f]);\ | ||
215 | X[(i)&0x0f]=(a)=ROTATE((a),1); | ||
216 | #endif | ||
217 | |||
218 | #define BODY_00_15(i,a,b,c,d,e,f,xa) \ | ||
219 | (f)=xa[i]+(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \ | ||
220 | (b)=ROTATE((b),30); | ||
221 | |||
222 | #define BODY_16_19(i,a,b,c,d,e,f,xa,xb,xc,xd) \ | ||
223 | Xupdate(f,i,xa,xb,xc,xd); \ | ||
224 | (f)+=(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \ | ||
225 | (b)=ROTATE((b),30); | ||
226 | |||
227 | #define BODY_20_31(i,a,b,c,d,e,f,xa,xb,xc,xd) \ | ||
228 | Xupdate(f,i,xa,xb,xc,xd); \ | ||
229 | (f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \ | ||
230 | (b)=ROTATE((b),30); | ||
231 | |||
232 | #define BODY_32_39(i,a,b,c,d,e,f,xa) \ | ||
233 | Xupdate(f,i,xa,xa,xa,xa); \ | ||
234 | (f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \ | ||
235 | (b)=ROTATE((b),30); | ||
236 | |||
237 | #define BODY_40_59(i,a,b,c,d,e,f,xa) \ | ||
238 | Xupdate(f,i,xa,xa,xa,xa); \ | ||
239 | (f)+=(e)+K_40_59+ROTATE((a),5)+F_40_59((b),(c),(d)); \ | ||
240 | (b)=ROTATE((b),30); | ||
241 | |||
242 | #define BODY_60_79(i,a,b,c,d,e,f,xa) \ | ||
243 | Xupdate(f,i,xa,xa,xa,xa); \ | ||
244 | (f)=X[(i)&0x0f]+(e)+K_60_79+ROTATE((a),5)+F_60_79((b),(c),(d)); \ | ||
245 | (b)=ROTATE((b),30); | ||
246 | |||
diff --git a/src/lib/libcrypto/sha/shatest.c b/src/lib/libcrypto/sha/shatest.c index 03816e9b39..2b0744d937 100644 --- a/src/lib/libcrypto/sha/shatest.c +++ b/src/lib/libcrypto/sha/shatest.c | |||
@@ -59,7 +59,19 @@ | |||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <string.h> | 60 | #include <string.h> |
61 | #include <stdlib.h> | 61 | #include <stdlib.h> |
62 | #include "sha.h" | 62 | |
63 | #ifdef NO_SHA | ||
64 | int main(int argc, char *argv[]) | ||
65 | { | ||
66 | printf("No SHA support\n"); | ||
67 | return(0); | ||
68 | } | ||
69 | #else | ||
70 | #include <openssl/sha.h> | ||
71 | |||
72 | #ifdef CHARSET_EBCDIC | ||
73 | #include <openssl/ebcdic.h> | ||
74 | #endif | ||
63 | 75 | ||
64 | #define SHA_0 /* FIPS 180 */ | 76 | #define SHA_0 /* FIPS 180 */ |
65 | #undef SHA_1 /* FIPS 180-1 */ | 77 | #undef SHA_1 /* FIPS 180-1 */ |
@@ -87,15 +99,8 @@ char *bigret= | |||
87 | "34aa973cd4c4daa4f61eeb2bdbad27316534016f"; | 99 | "34aa973cd4c4daa4f61eeb2bdbad27316534016f"; |
88 | #endif | 100 | #endif |
89 | 101 | ||
90 | #ifndef NOPROTO | ||
91 | static char *pt(unsigned char *md); | 102 | static char *pt(unsigned char *md); |
92 | #else | 103 | int main(int argc, char *argv[]) |
93 | static char *pt(); | ||
94 | #endif | ||
95 | |||
96 | int main(argc,argv) | ||
97 | int argc; | ||
98 | char *argv[]; | ||
99 | { | 104 | { |
100 | int i,err=0; | 105 | int i,err=0; |
101 | unsigned char **P,**R; | 106 | unsigned char **P,**R; |
@@ -104,6 +109,11 @@ char *argv[]; | |||
104 | SHA_CTX c; | 109 | SHA_CTX c; |
105 | unsigned char md[SHA_DIGEST_LENGTH]; | 110 | unsigned char md[SHA_DIGEST_LENGTH]; |
106 | 111 | ||
112 | #ifdef CHARSET_EBCDIC | ||
113 | ebcdic2ascii(test[0], test[0], strlen(test[0])); | ||
114 | ebcdic2ascii(test[1], test[1], strlen(test[1])); | ||
115 | #endif | ||
116 | |||
107 | P=(unsigned char **)test; | 117 | P=(unsigned char **)test; |
108 | R=(unsigned char **)ret; | 118 | R=(unsigned char **)ret; |
109 | i=1; | 119 | i=1; |
@@ -124,6 +134,9 @@ char *argv[]; | |||
124 | } | 134 | } |
125 | 135 | ||
126 | memset(buf,'a',1000); | 136 | memset(buf,'a',1000); |
137 | #ifdef CHARSET_EBCDIC | ||
138 | ebcdic2ascii(buf, buf, 1000); | ||
139 | #endif /*CHARSET_EBCDIC*/ | ||
127 | SHA_Init(&c); | 140 | SHA_Init(&c); |
128 | for (i=0; i<1000; i++) | 141 | for (i=0; i<1000; i++) |
129 | SHA_Update(&c,buf,1000); | 142 | SHA_Update(&c,buf,1000); |
@@ -143,8 +156,7 @@ char *argv[]; | |||
143 | return(0); | 156 | return(0); |
144 | } | 157 | } |
145 | 158 | ||
146 | static char *pt(md) | 159 | static char *pt(unsigned char *md) |
147 | unsigned char *md; | ||
148 | { | 160 | { |
149 | int i; | 161 | int i; |
150 | static char buf[80]; | 162 | static char buf[80]; |
@@ -153,3 +165,4 @@ unsigned char *md; | |||
153 | sprintf(&(buf[i*2]),"%02x",md[i]); | 165 | sprintf(&(buf[i*2]),"%02x",md[i]); |
154 | return(buf); | 166 | return(buf); |
155 | } | 167 | } |
168 | #endif | ||