Do not silently truncate files on perlasm errors
If one of the perlasm xlate drivers crashes, OpenSSL's build will
currently swallow the error and silently truncate the output to however
far the driver got. This will hopefully fail to build, but better to
check such things.
Handle this by checking for errors when closing STDOUT (which is a pipe
to the xlate driver).
This is the OpenSSL 1.1.1 version of
https://github.com/openssl/openssl/pull/10883 and
https://github.com/openssl/openssl/pull/10930.
Reviewed-by: Mark J. Cox <mark@awe.com>
Reviewed-by: Paul Dale David Benjamin <davidben@google.com>
(Merged from https://github.com/openssl/openssl/pull/10931)
David Benjamin authored 4 years ago
Pauli committed 4 years ago
1241 | 1241 | close SELF; |
1242 | 1242 | |
1243 | 1243 | print $code; |
1244 | close STDOUT; # enforce flush | |
1244 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
1378 | 1378 | ___ |
1379 | 1379 | |
1380 | 1380 | print $code; |
1381 | close STDOUT; | |
1381 | close STDOUT or die "error closing STDOUT: $!"; |
2166 | 2166 | print $_,"\n"; |
2167 | 2167 | } |
2168 | 2168 | |
2169 | close STDOUT; | |
2169 | close STDOUT or die "error closing STDOUT: $!"; |
1034 | 1034 | |
1035 | 1035 | print $_,"\n"; |
1036 | 1036 | } |
1037 | close STDOUT; | |
1037 | close STDOUT or die "error closing STDOUT: $!"; |
1455 | 1455 | |
1456 | 1456 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
1457 | 1457 | print $code; |
1458 | close STDOUT; | |
1458 | close STDOUT or die "error closing STDOUT: $!"; |
2278 | 2278 | |
2279 | 2279 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
2280 | 2280 | print $code; |
2281 | close STDOUT; # force flush | |
2281 | close STDOUT or die "error closing STDOUT: $!"; # force flush |
1188 | 1188 | $code =~ s/fmovs.*$//gm; |
1189 | 1189 | |
1190 | 1190 | print $code; |
1191 | close STDOUT; # ensure flush | |
1191 | close STDOUT or die "error closing STDOUT: $!"; # ensure flush |
1266 | 1266 | print $_,"\n"; |
1267 | 1267 | } |
1268 | 1268 | |
1269 | close STDOUT; | |
1269 | close STDOUT or die "error closing STDOUT: $!"; |
1470 | 1470 | $code =~ s/\b(aes.*%xmm[0-9]+).*$/aesni($1)/gem; |
1471 | 1471 | |
1472 | 1472 | print $code; |
1473 | close STDOUT; | |
1473 | close STDOUT or die "error closing STDOUT: $!"; |
2142 | 2142 | |
2143 | 2143 | print $_,"\n"; |
2144 | 2144 | } |
2145 | close STDOUT; | |
2145 | close STDOUT or die "error closing STDOUT: $!"; |
1798 | 1798 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
1799 | 1799 | $code =~ s/\b(sha256[^\s]*)\s+(.*)/sha256op38($1,$2)/gem; |
1800 | 1800 | print $code; |
1801 | close STDOUT; | |
1801 | close STDOUT or die "error closing STDOUT: $!"; |
3411 | 3411 | |
3412 | 3412 | &asm_finish(); |
3413 | 3413 | |
3414 | close STDOUT; | |
3414 | close STDOUT or die "error closing STDOUT: $!"; |
5153 | 5153 | |
5154 | 5154 | print $code; |
5155 | 5155 | |
5156 | close STDOUT; | |
5156 | close STDOUT or die "error closing STDOUT: $!"; |
3803 | 3803 | print $_,"\n"; |
3804 | 3804 | } |
3805 | 3805 | |
3806 | close STDOUT; | |
3806 | close STDOUT or die "error closing STDOUT: $!"; |
925 | 925 | |
926 | 926 | &emit_assembler(); |
927 | 927 | |
928 | close STDOUT; | |
928 | close STDOUT or die "error closing STDOUT: $!"; |
1007 | 1007 | } |
1008 | 1008 | } |
1009 | 1009 | |
1010 | close STDOUT; | |
1010 | close STDOUT or die "error closing STDOUT: $!"; |
2487 | 2487 | |
2488 | 2488 | print $code; |
2489 | 2489 | |
2490 | close STDOUT; | |
2490 | close STDOUT or die "error closing STDOUT: $!"; |
1273 | 1273 | } } |
1274 | 1274 | print $code; |
1275 | 1275 | |
1276 | close STDOUT; | |
1276 | close STDOUT or die "error closing STDOUT: $!"; |
1590 | 1590 | print $_,"\n"; |
1591 | 1591 | } |
1592 | 1592 | |
1593 | close STDOUT; | |
1593 | close STDOUT or die "error closing STDOUT: $!"; |
912 | 912 | |
913 | 913 | &asm_finish(); |
914 | 914 | |
915 | close STDOUT; | |
915 | close STDOUT or die "error closing STDOUT: $!"; |
1237 | 1237 | |
1238 | 1238 | print $code; |
1239 | 1239 | |
1240 | close STDOUT; | |
1240 | close STDOUT or die "error closing STDOUT: $!"; |
143 | 143 | ___ |
144 | 144 | |
145 | 145 | print $code; |
146 | close STDOUT; | |
146 | close STDOUT or die "error closing STDOUT: $!"; |
292 | 292 | ___ |
293 | 293 | |
294 | 294 | print $code; |
295 | close STDOUT; | |
295 | close STDOUT or die "error closing STDOUT: $!"; |
31 | 31 | &cbc("BF_cbc_encrypt","BF_encrypt","BF_decrypt",1,4,5,3,-1,-1); |
32 | 32 | &asm_finish(); |
33 | 33 | |
34 | close STDOUT; | |
34 | close STDOUT or die "error closing STDOUT: $!"; | |
35 | 35 | |
36 | 36 | sub BF_encrypt |
37 | 37 | { |
324 | 324 | ___ |
325 | 325 | |
326 | 326 | print $code; |
327 | close STDOUT; | |
327 | close STDOUT or die "error closing STDOUT: $!"; |
328 | 328 | |
329 | 329 | print $_,"\n"; |
330 | 330 | } |
331 | close STDOUT; # enforce flush | |
331 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
753 | 753 | print $_,"\n"; |
754 | 754 | } |
755 | 755 | |
756 | close STDOUT; | |
756 | close STDOUT or die "error closing STDOUT: $!"; |
1510 | 1510 | |
1511 | 1511 | print $code; |
1512 | 1512 | |
1513 | close STDOUT; | |
1513 | close STDOUT or die "error closing STDOUT: $!"; |
30 | 30 | |
31 | 31 | &asm_finish(); |
32 | 32 | |
33 | close STDOUT; | |
33 | close STDOUT or die "error closing STDOUT: $!"; | |
34 | 34 | |
35 | 35 | sub bn_mul_add_words |
36 | 36 | { |
156 | 156 | ___ |
157 | 157 | |
158 | 158 | print $code; |
159 | close STDOUT; | |
159 | close STDOUT or die "error closing STDOUT: $!"; |
21 | 21 | |
22 | 22 | &asm_finish(); |
23 | 23 | |
24 | close STDOUT; | |
24 | close STDOUT or die "error closing STDOUT: $!"; | |
25 | 25 | |
26 | 26 | sub mul_add_c |
27 | 27 | { |
856 | 856 | |
857 | 857 | open STDOUT,">$output" if $output; |
858 | 858 | print $code; |
859 | close STDOUT; | |
859 | close STDOUT or die "error closing STDOUT: $!"; |
429 | 429 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
430 | 430 | |
431 | 431 | print $code; |
432 | close STDOUT; | |
432 | close STDOUT or die "error closing STDOUT: $!"; |
2259 | 2259 | .end bn_sqr_comba4 |
2260 | 2260 | ___ |
2261 | 2261 | print $code; |
2262 | close STDOUT; | |
2262 | close STDOUT or die "error closing STDOUT: $!"; |
1002 | 1002 | |
1003 | 1003 | print $_,"\n"; |
1004 | 1004 | } |
1005 | close STDOUT; | |
1005 | close STDOUT or die "error closing STDOUT: $!"; |
1986 | 1986 | |
1987 | 1987 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
1988 | 1988 | print $code; |
1989 | close STDOUT; | |
1989 | close STDOUT or die "error closing STDOUT: $!"; |
2008 | 2008 | EOF |
2009 | 2009 | $data =~ s/\`([^\`]*)\`/eval $1/gem; |
2010 | 2010 | print $data; |
2011 | close STDOUT; | |
2011 | close STDOUT or die "error closing STDOUT: $!"; |
1648 | 1648 | |
1649 | 1649 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
1650 | 1650 | print $code; |
1651 | close STDOUT; | |
1651 | close STDOUT or die "error closing STDOUT: $!"; |
1978 | 1978 | ___ |
1979 | 1979 | }}} |
1980 | 1980 | |
1981 | close STDOUT; | |
1981 | close STDOUT or die "error closing STDOUT: $!"; |
2427 | 2427 | |
2428 | 2428 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
2429 | 2429 | print $code; |
2430 | close STDOUT; | |
2430 | close STDOUT or die "error closing STDOUT: $!"; |
224 | 224 | |
225 | 225 | $code =~ s/\`([^\`]*)\`/eval($1)/gem; |
226 | 226 | print $code; |
227 | close STDOUT; | |
227 | close STDOUT or die "error closing STDOUT: $!"; |
280 | 280 | s/_dswap\s+(%r[0-9]+)/sprintf("rllg\t%s,%s,32",$1,$1) if($SIZE_T==4)/e; |
281 | 281 | print $_,"\n"; |
282 | 282 | } |
283 | close STDOUT; | |
283 | close STDOUT or die "error closing STDOUT: $!"; |
1224 | 1224 | |
1225 | 1225 | &emit_assembler(); |
1226 | 1226 | |
1227 | close STDOUT; | |
1227 | close STDOUT or die "error closing STDOUT: $!"; |
196 | 196 | |
197 | 197 | $code =~ s/\`([^\`]*)\`/eval($1)/gem; |
198 | 198 | print $code; |
199 | close STDOUT; | |
199 | close STDOUT or die "error closing STDOUT: $!"; |
616 | 616 | ___ |
617 | 617 | $code =~ s/\`([^\`]*)\`/eval($1)/gem; |
618 | 618 | print $code; |
619 | close STDOUT; | |
619 | close STDOUT or die "error closing STDOUT: $!"; |
883 | 883 | |
884 | 884 | print $code; |
885 | 885 | # flush |
886 | close STDOUT; | |
886 | close STDOUT or die "error closing STDOUT: $!"; |
247 | 247 | |
248 | 248 | &asm_finish(); |
249 | 249 | |
250 | close STDOUT; | |
250 | close STDOUT or die "error closing STDOUT: $!"; |
380 | 380 | print $_,"\n"; |
381 | 381 | } |
382 | 382 | |
383 | close STDOUT; | |
383 | close STDOUT or die "error closing STDOUT: $!"; |
321 | 321 | |
322 | 322 | &asm_finish(); |
323 | 323 | |
324 | close STDOUT; | |
324 | close STDOUT or die "error closing STDOUT: $!"; |
627 | 627 | |
628 | 628 | &asm_finish(); |
629 | 629 | |
630 | close STDOUT; | |
630 | close STDOUT or die "error closing STDOUT: $!"; |
420 | 420 | |
421 | 421 | $code =~ s/\`([^\`]*)\`/eval($1)/gem; |
422 | 422 | print $code; |
423 | close STDOUT; | |
423 | close STDOUT or die "error closing STDOUT: $!"; |
1588 | 1588 | } |
1589 | 1589 | |
1590 | 1590 | print $code; |
1591 | close STDOUT; | |
1591 | close STDOUT or die "error closing STDOUT: $!"; |
3959 | 3959 | $code =~ s/\`([^\`]*)\`/eval($1)/gem; |
3960 | 3960 | |
3961 | 3961 | print $code; |
3962 | close STDOUT; | |
3962 | close STDOUT or die "error closing STDOUT: $!"; |
283 | 283 | ___ |
284 | 284 | |
285 | 285 | print $code; |
286 | close STDOUT; | |
286 | close STDOUT or die "error closing STDOUT: $!"; |
1146 | 1146 | |
1147 | 1147 | &asm_finish(); |
1148 | 1148 | |
1149 | close STDOUT; | |
1149 | close STDOUT or die "error closing STDOUT: $!"; |
1149 | 1149 | |
1150 | 1150 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
1151 | 1151 | print $code; |
1152 | close STDOUT; | |
1152 | close STDOUT or die "error closing STDOUT: $!"; |
935 | 935 | |
936 | 936 | &emit_assembler(); |
937 | 937 | |
938 | close STDOUT; | |
938 | close STDOUT or die "error closing STDOUT: $!"; |
45 | 45 | |
46 | 46 | &asm_finish(); |
47 | 47 | |
48 | close STDOUT; | |
48 | close STDOUT or die "error closing STDOUT: $!"; | |
49 | 49 | |
50 | 50 | sub CAST_encrypt { |
51 | 51 | local($name,$enc)=@_; |
1156 | 1156 | |
1157 | 1157 | print $_,"\n"; |
1158 | 1158 | } |
1159 | close STDOUT; | |
1159 | close STDOUT or die "error closing STDOUT: $!"; |
1140 | 1140 | |
1141 | 1141 | print $_,"\n"; |
1142 | 1142 | } |
1143 | close STDOUT; # flush | |
1143 | close STDOUT or die "error closing STDOUT: $!"; # flush |
922 | 922 | ___ |
923 | 923 | |
924 | 924 | print $code; |
925 | close STDOUT; | |
925 | close STDOUT or die "error closing STDOUT: $!"; |
1344 | 1344 | print $_,"\n"; |
1345 | 1345 | } |
1346 | 1346 | |
1347 | close STDOUT; | |
1347 | close STDOUT or die "error closing STDOUT: $!"; |
322 | 322 | |
323 | 323 | print $_,"\n"; |
324 | 324 | } |
325 | close STDOUT; | |
325 | close STDOUT or die "error closing STDOUT: $!"; |
1151 | 1151 | |
1152 | 1152 | &asm_finish(); |
1153 | 1153 | |
1154 | close STDOUT; | |
1154 | close STDOUT or die "error closing STDOUT: $!"; |
4001 | 4001 | print $_,"\n"; |
4002 | 4002 | } |
4003 | 4003 | |
4004 | close STDOUT; | |
4004 | close STDOUT or die "error closing STDOUT: $!"; |
24 | 24 | &fcrypt_body("fcrypt_body"); |
25 | 25 | &asm_finish(); |
26 | 26 | |
27 | close STDOUT; | |
27 | close STDOUT or die "error closing STDOUT: $!"; | |
28 | 28 | |
29 | 29 | sub fcrypt_body |
30 | 30 | { |
46 | 46 | |
47 | 47 | &asm_finish(); |
48 | 48 | |
49 | close STDOUT; | |
49 | close STDOUT or die "error closing STDOUT: $!"; | |
50 | 50 | |
51 | 51 | sub DES_encrypt_internal() |
52 | 52 | { |
623 | 623 | |
624 | 624 | &emit_assembler(); |
625 | 625 | |
626 | close STDOUT; | |
626 | close STDOUT or die "error closing STDOUT: $!"; |
1848 | 1848 | |
1849 | 1849 | print $_,"\n"; |
1850 | 1850 | } |
1851 | close STDOUT; # enforce flush | |
1851 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
1870 | 1870 | |
1871 | 1871 | print $_,"\n"; |
1872 | 1872 | } |
1873 | close STDOUT; # enforce flush | |
1873 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
2076 | 2076 | print $_,"\n"; |
2077 | 2077 | } |
2078 | 2078 | |
2079 | close STDOUT; | |
2079 | close STDOUT or die "error closing STDOUT: $!"; |
2378 | 2378 | |
2379 | 2379 | print $_,"\n"; |
2380 | 2380 | } |
2381 | close STDOUT; # enforce flush | |
2381 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
3056 | 3056 | print $_,"\n"; |
3057 | 3057 | } |
3058 | 3058 | |
3059 | close STDOUT; | |
3059 | close STDOUT or die "error closing STDOUT: $!"; |
1858 | 1858 | |
1859 | 1859 | &asm_finish(); |
1860 | 1860 | |
1861 | close STDOUT; | |
1861 | close STDOUT or die "error closing STDOUT: $!"; |
4735 | 4735 | |
4736 | 4736 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
4737 | 4737 | print $code; |
4738 | close STDOUT; | |
4738 | close STDOUT or die "error closing STDOUT: $!"; |
820 | 820 | |
821 | 821 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
822 | 822 | print $code; |
823 | close STDOUT; | |
823 | close STDOUT or die "error closing STDOUT: $!"; |
1127 | 1127 | |
1128 | 1128 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
1129 | 1129 | print $code; |
1130 | close STDOUT; | |
1130 | close STDOUT or die "error closing STDOUT: $!"; |
42 | 42 | &md5_block("md5_block_asm_data_order"); |
43 | 43 | &asm_finish(); |
44 | 44 | |
45 | close STDOUT; | |
45 | close STDOUT or die "error closing STDOUT: $!"; | |
46 | 46 | |
47 | 47 | sub Np |
48 | 48 | { |
433 | 433 | print $_,"\n"; |
434 | 434 | } |
435 | 435 | |
436 | close STDOUT; | |
436 | close STDOUT or die "error closing STDOUT: $!"; |
389 | 389 | |
390 | 390 | print $code; |
391 | 391 | |
392 | close STDOUT; | |
392 | close STDOUT or die "error closing STDOUT: $!"; |
1103 | 1103 | |
1104 | 1104 | print $code; |
1105 | 1105 | |
1106 | close STDOUT; | |
1106 | close STDOUT or die "error closing STDOUT: $!"; |
462 | 462 | ___ |
463 | 463 | $output=pop and open STDOUT,">$output"; |
464 | 464 | print $code; |
465 | close STDOUT; | |
466 | ||
465 | close STDOUT or die "error closing STDOUT: $!"; | |
466 |
547 | 547 | |
548 | 548 | print $_,"\n"; |
549 | 549 | } |
550 | close STDOUT; # enforce flush | |
550 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
243 | 243 | ___ |
244 | 244 | |
245 | 245 | print $code; |
246 | close STDOUT; | |
246 | close STDOUT or die "error closing STDOUT: $!"; |
466 | 466 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
467 | 467 | |
468 | 468 | print $code; |
469 | close STDOUT; | |
469 | close STDOUT or die "error closing STDOUT: $!"; |
744 | 744 | print $_,"\n"; |
745 | 745 | } |
746 | 746 | |
747 | close STDOUT; | |
747 | close STDOUT or die "error closing STDOUT: $!"; |
258 | 258 | |
259 | 259 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
260 | 260 | print $code; |
261 | close STDOUT; | |
261 | close STDOUT or die "error closing STDOUT: $!"; |
577 | 577 | print $_,"\n"; |
578 | 578 | } |
579 | 579 | |
580 | close STDOUT; | |
580 | close STDOUT or die "error closing STDOUT: $!"; |
1377 | 1377 | &asciz("GHASH for x86, CRYPTOGAMS by <appro\@openssl.org>"); |
1378 | 1378 | &asm_finish(); |
1379 | 1379 | |
1380 | close STDOUT; | |
1380 | close STDOUT or die "error closing STDOUT: $!"; | |
1381 | 1381 | |
1382 | 1382 | # A question was risen about choice of vanilla MMX. Or rather why wasn't |
1383 | 1383 | # SSE2 chosen instead? In addition to the fact that MMX runs on legacy |
1814 | 1814 | |
1815 | 1815 | print $code; |
1816 | 1816 | |
1817 | close STDOUT; | |
1817 | close STDOUT or die "error closing STDOUT: $!"; |
667 | 667 | print $_,"\n"; |
668 | 668 | } |
669 | 669 | |
670 | close STDOUT; # enforce flush | |
670 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
777 | 777 | } |
778 | 778 | } |
779 | 779 | |
780 | close STDOUT; # enforce flush | |
780 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
271 | 271 | |
272 | 272 | print $_,"\n"; |
273 | 273 | } |
274 | close STDOUT; | |
275 | ||
274 | close STDOUT or die "error closing STDOUT: $!"; | |
275 |
173 | 173 | print "\n"; |
174 | 174 | } |
175 | 175 | |
176 | close STDOUT; | |
176 | close STDOUT or die "error closing STDOUT: $!"; |
340 | 340 | print "\n"; |
341 | 341 | } |
342 | 342 | |
343 | close STDOUT; | |
343 | close STDOUT or die "error closing STDOUT: $!"; |
1215 | 1215 | print "\n$current_segment\tENDS\n" if ($current_segment && $masm); |
1216 | 1216 | print "END\n" if ($masm); |
1217 | 1217 | |
1218 | close STDOUT; | |
1218 | close STDOUT or die "error closing STDOUT: $!"; | |
1219 | 1219 | |
1220 | 1220 | ################################################# |
1221 | 1221 | # Cross-reference x86_64 ABI "card" |
1249 | 1249 | |
1250 | 1250 | print $_,"\n"; |
1251 | 1251 | } |
1252 | close STDOUT; # enforce flush | |
1252 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
942 | 942 | |
943 | 943 | print $_,"\n"; |
944 | 944 | } |
945 | close STDOUT; | |
945 | close STDOUT or die "error closing STDOUT: $!"; |
432 | 432 | |
433 | 433 | $output=pop and open STDOUT,">$output"; |
434 | 434 | print $code; |
435 | close STDOUT; | |
436 | ||
435 | close STDOUT or die "error closing STDOUT: $!"; | |
436 |
641 | 641 | |
642 | 642 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
643 | 643 | print $code; |
644 | close STDOUT; | |
644 | close STDOUT or die "error closing STDOUT: $!"; |
735 | 735 | |
736 | 736 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
737 | 737 | print $code; |
738 | close STDOUT; | |
738 | close STDOUT or die "error closing STDOUT: $!"; |
223 | 223 | $code =~ s/\b(srlg\s+)(%r[0-9]+\s*,)\s*([0-9]+)/$1$2$2$3/gm; |
224 | 224 | |
225 | 225 | print $code; |
226 | close STDOUT; | |
226 | close STDOUT or die "error closing STDOUT: $!"; |
1116 | 1116 | print $_,"\n"; |
1117 | 1117 | } |
1118 | 1118 | |
1119 | close STDOUT; | |
1119 | close STDOUT or die "error closing STDOUT: $!"; |
1811 | 1811 | |
1812 | 1812 | &asm_finish(); |
1813 | 1813 | |
1814 | close STDOUT; | |
1814 | close STDOUT or die "error closing STDOUT: $!"; |
4179 | 4179 | |
4180 | 4180 | print $_,"\n"; |
4181 | 4181 | } |
4182 | close STDOUT; | |
4182 | close STDOUT or die "error closing STDOUT: $!"; |
378 | 378 | |
379 | 379 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
380 | 380 | print $code; |
381 | close STDOUT; | |
381 | close STDOUT or die "error closing STDOUT: $!"; |
422 | 422 | |
423 | 423 | &asm_finish(); |
424 | 424 | |
425 | close STDOUT; | |
425 | close STDOUT or die "error closing STDOUT: $!"; |
188 | 188 | $output=pop; |
189 | 189 | open STDOUT,">$output"; |
190 | 190 | print $code; |
191 | close STDOUT; | |
191 | close STDOUT or die "error closing STDOUT: $!"; |
659 | 659 | |
660 | 660 | print $code; |
661 | 661 | |
662 | close STDOUT; | |
662 | close STDOUT or die "error closing STDOUT: $!"; |
329 | 329 | |
330 | 330 | print $_,"\n"; |
331 | 331 | } |
332 | close STDOUT; | |
332 | close STDOUT or die "error closing STDOUT: $!"; |
237 | 237 | ___ |
238 | 238 | |
239 | 239 | print $code; |
240 | close STDOUT; # force flush | |
240 | close STDOUT or die "error closing STDOUT: $!"; # force flush |
697 | 697 | |
698 | 698 | print $code; |
699 | 699 | |
700 | close STDOUT; | |
700 | close STDOUT or die "error closing STDOUT: $!"; |
31 | 31 | &cbc("RC5_32_cbc_encrypt","RC5_32_encrypt","RC5_32_decrypt",0,4,5,3,-1,-1); |
32 | 32 | &asm_finish(); |
33 | 33 | |
34 | close STDOUT; | |
34 | close STDOUT or die "error closing STDOUT: $!"; | |
35 | 35 | |
36 | 36 | sub RC5_32_encrypt |
37 | 37 | { |
69 | 69 | &ripemd160_block("ripemd160_block_asm_data_order"); |
70 | 70 | &asm_finish(); |
71 | 71 | |
72 | close STDOUT; | |
72 | close STDOUT or die "error closing STDOUT: $!"; | |
73 | 73 | |
74 | 74 | sub Xv |
75 | 75 | { |
417 | 417 | |
418 | 418 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
419 | 419 | print $code; |
420 | close STDOUT; # force flush | |
420 | close STDOUT or die "error closing STDOUT: $!"; # force flush |
1602 | 1602 | print $_,"\n"; |
1603 | 1603 | } |
1604 | 1604 | |
1605 | close STDOUT; # enforce flush | |
1605 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
876 | 876 | print $_,"\n"; |
877 | 877 | } |
878 | 878 | |
879 | close STDOUT; | |
879 | close STDOUT or die "error closing STDOUT: $!"; |
478 | 478 | $output=pop; |
479 | 479 | open STDOUT,">$output"; |
480 | 480 | print $code; |
481 | close STDOUT; | |
481 | close STDOUT or die "error closing STDOUT: $!"; |
547 | 547 | $output=pop; |
548 | 548 | open STDOUT,">$output"; |
549 | 549 | print $code; |
550 | close STDOUT; | |
550 | close STDOUT or die "error closing STDOUT: $!"; |
388 | 388 | $output=pop; |
389 | 389 | open STDOUT,">$output"; |
390 | 390 | print $code; |
391 | close STDOUT; | |
391 | close STDOUT or die "error closing STDOUT: $!"; |
881 | 881 | $output=pop; |
882 | 882 | open STDOUT,">$output"; |
883 | 883 | print $code; |
884 | close STDOUT; | |
884 | close STDOUT or die "error closing STDOUT: $!"; |
436 | 436 | |
437 | 437 | &asm_finish(); |
438 | 438 | |
439 | close STDOUT; | |
439 | close STDOUT or die "error closing STDOUT: $!"; |
754 | 754 | |
755 | 755 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
756 | 756 | print $code; |
757 | close STDOUT; | |
757 | close STDOUT or die "error closing STDOUT: $!"; |
556 | 556 | $code =~ s/(srlg\s+)(%r[0-9]+),/$1$2,$2,/gm; |
557 | 557 | |
558 | 558 | print $code; |
559 | close STDOUT; | |
559 | close STDOUT or die "error closing STDOUT: $!"; |
605 | 605 | print $_, "\n"; |
606 | 606 | } |
607 | 607 | |
608 | close STDOUT; | |
608 | close STDOUT or die "error closing STDOUT: $!"; |
846 | 846 | print $_,"\n"; |
847 | 847 | } |
848 | 848 | |
849 | close STDOUT; | |
849 | close STDOUT or die "error closing STDOUT: $!"; |
1487 | 1487 | |
1488 | 1488 | &asm_finish(); |
1489 | 1489 | |
1490 | close STDOUT; | |
1490 | close STDOUT or die "error closing STDOUT: $!"; |
325 | 325 | ___ |
326 | 326 | $output=pop and open STDOUT,">$output"; |
327 | 327 | print $code; |
328 | close STDOUT; | |
328 | close STDOUT or die "error closing STDOUT: $!"; |
738 | 738 | print $_,$/; |
739 | 739 | } |
740 | 740 | |
741 | close STDOUT; # enforce flush | |
741 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
360 | 360 | print $_,"\n"; |
361 | 361 | } |
362 | 362 | |
363 | close STDOUT; | |
363 | close STDOUT or die "error closing STDOUT: $!"; |
333 | 333 | ___ |
334 | 334 | |
335 | 335 | print $code; |
336 | close STDOUT; | |
336 | close STDOUT or die "error closing STDOUT: $!"; |
1624 | 1624 | print $_,"\n"; |
1625 | 1625 | } |
1626 | 1626 | |
1627 | close STDOUT; | |
1627 | close STDOUT or die "error closing STDOUT: $!"; |
457 | 457 | .asciiz "SHA1 for MIPS, CRYPTOGAMS by <appro\@openssl.org>" |
458 | 458 | ___ |
459 | 459 | print $code; |
460 | close STDOUT; | |
460 | close STDOUT or die "error closing STDOUT: $!"; |
275 | 275 | |
276 | 276 | print $_,"\n"; |
277 | 277 | } |
278 | close STDOUT; | |
278 | close STDOUT or die "error closing STDOUT: $!"; |
347 | 347 | |
348 | 348 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
349 | 349 | print $code; |
350 | close STDOUT; | |
350 | close STDOUT or die "error closing STDOUT: $!"; |
245 | 245 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
246 | 246 | |
247 | 247 | print $code; |
248 | close STDOUT; | |
248 | close STDOUT or die "error closing STDOUT: $!"; |
430 | 430 | print $_,"\n"; |
431 | 431 | } |
432 | 432 | |
433 | close STDOUT; | |
433 | close STDOUT or die "error closing STDOUT: $!"; |
604 | 604 | &unalignaddr($1,$2,$3,$4) |
605 | 605 | /gem; |
606 | 606 | print $code; |
607 | close STDOUT; | |
607 | close STDOUT or die "error closing STDOUT: $!"; |
262 | 262 | ___ |
263 | 263 | |
264 | 264 | print $code; |
265 | close STDOUT; # enforce flush | |
265 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
2128 | 2128 | |
2129 | 2129 | print $_,"\n"; |
2130 | 2130 | } |
2131 | close STDOUT; | |
2131 | close STDOUT or die "error closing STDOUT: $!"; |
1292 | 1292 | |
1293 | 1293 | &asm_finish(); |
1294 | 1294 | |
1295 | close STDOUT; | |
1295 | close STDOUT or die "error closing STDOUT: $!"; |
728 | 728 | print $_,"\n"; |
729 | 729 | } |
730 | 730 | |
731 | close STDOUT; # enforce flush | |
731 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
316 | 316 | ___ |
317 | 317 | |
318 | 318 | print $code; |
319 | close STDOUT; | |
319 | close STDOUT or die "error closing STDOUT: $!"; |
1610 | 1610 | print $_,"\n"; |
1611 | 1611 | } |
1612 | 1612 | |
1613 | close STDOUT; | |
1613 | close STDOUT or die "error closing STDOUT: $!"; |
921 | 921 | |
922 | 922 | &asm_finish(); |
923 | 923 | |
924 | close STDOUT; | |
924 | close STDOUT or die "error closing STDOUT: $!"; |
664 | 664 | close SELF; |
665 | 665 | |
666 | 666 | print $code; |
667 | close STDOUT; # enforce flush | |
667 | close STDOUT or die "error closing STDOUT: $!"; # enforce flush |
901 | 901 | print $_,"\n"; |
902 | 902 | } |
903 | 903 | |
904 | close STDOUT; | |
904 | close STDOUT or die "error closing STDOUT: $!"; |
434 | 434 | ___ |
435 | 435 | |
436 | 436 | print $code; |
437 | close STDOUT; | |
437 | close STDOUT or die "error closing STDOUT: $!"; |
517 | 517 | |
518 | 518 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
519 | 519 | print $code; |
520 | close STDOUT; | |
520 | close STDOUT or die "error closing STDOUT: $!"; |
803 | 803 | print $_,"\n"; |
804 | 804 | } |
805 | 805 | |
806 | close STDOUT; | |
806 | close STDOUT or die "error closing STDOUT: $!"; |
795 | 795 | |
796 | 796 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
797 | 797 | print $code; |
798 | close STDOUT; | |
798 | close STDOUT or die "error closing STDOUT: $!"; |
320 | 320 | $code =~ s/(srlg\s+)(%r[0-9]+),/$1$2,$2,/gm; |
321 | 321 | |
322 | 322 | print $code; |
323 | close STDOUT; | |
323 | close STDOUT or die "error closing STDOUT: $!"; |
853 | 853 | print $_,"\n"; |
854 | 854 | } |
855 | 855 | |
856 | close STDOUT; | |
856 | close STDOUT or die "error closing STDOUT: $!"; |
2554 | 2554 | |
2555 | 2555 | print $_,"\n"; |
2556 | 2556 | } |
2557 | close STDOUT; | |
2557 | close STDOUT or die "error closing STDOUT: $!"; |
416 | 416 | |
417 | 417 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
418 | 418 | print $code; |
419 | close STDOUT; | |
419 | close STDOUT or die "error closing STDOUT: $!"; |
503 | 503 | &function_end_B("whirlpool_block_mmx"); |
504 | 504 | &asm_finish(); |
505 | 505 | |
506 | close STDOUT; | |
506 | close STDOUT or die "error closing STDOUT: $!"; |
613 | 613 | |
614 | 614 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
615 | 615 | print $code; |
616 | close STDOUT; | |
616 | close STDOUT or die "error closing STDOUT: $!"; |