diff --git a/collects/mzlib/md5.ss b/collects/mzlib/md5.ss index 8019adc5e6..62ba3ab11b 100644 --- a/collects/mzlib/md5.ss +++ b/collects/mzlib/md5.ss @@ -289,85 +289,88 @@ #| This is the `no GC version' (aka C-in-Scheme) of this: (set! a (word+ b (word<<< (word+ (word+ a (e b c d)) (word+ (vector-ref X f) - (word g))) - h))) + (word h))) + g))) |# (begin (e tmp b c d) (word+=! a tmp) (word+=! a (vector-ref X f)) - (word+=! a (word g)) - (word<<exact (floor (* 4294967296 (abs (sin i)))))) + ;; for i from 1 to 64 + (step A B C D F 0 7 3614090360) + (step D A B C F 1 12 3905402710) + (step C D A B F 2 17 606105819) + (step B C D A F 3 22 3250441966) + (step A B C D F 4 7 4118548399) + (step D A B C F 5 12 1200080426) + (step C D A B F 6 17 2821735955) + (step B C D A F 7 22 4249261313) + (step A B C D F 8 7 1770035416) + (step D A B C F 9 12 2336552879) + (step C D A B F 10 17 4294925233) + (step B C D A F 11 22 2304563134) + (step A B C D F 12 7 1804603682) + (step D A B C F 13 12 4254626195) + (step C D A B F 14 17 2792965006) + (step B C D A F 15 22 1236535329) ;;--- - (step A B C D G 1 4129170786 5) - (step D A B C G 6 3225465664 9) - (step C D A B G 11 643717713 14) - (step B C D A G 0 3921069994 20) - (step A B C D G 5 3593408605 5) - (step D A B C G 10 38016083 9) - (step C D A B G 15 3634488961 14) - (step B C D A G 4 3889429448 20) - (step A B C D G 9 568446438 5) - (step D A B C G 14 3275163606 9) - (step C D A B G 3 4107603335 14) - (step B C D A G 8 1163531501 20) - (step A B C D G 13 2850285829 5) - (step D A B C G 2 4243563512 9) - (step C D A B G 7 1735328473 14) - (step B C D A G 12 2368359562 20) + (step A B C D G 1 5 4129170786) + (step D A B C G 6 9 3225465664) + (step C D A B G 11 14 643717713) + (step B C D A G 0 20 3921069994) + (step A B C D G 5 5 3593408605) + (step D A B C G 10 9 38016083) + (step C D A B G 15 14 3634488961) + (step B C D A G 4 20 3889429448) + (step A B C D G 9 5 568446438) + (step D A B C G 14 9 3275163606) + (step C D A B G 3 14 4107603335) + (step B C D A G 8 20 1163531501) + (step A B C D G 13 5 2850285829) + (step D A B C G 2 9 4243563512) + (step C D A B G 7 14 1735328473) + (step B C D A G 12 20 2368359562) ;;--- - (step A B C D H 5 4294588738 4) - (step D A B C H 8 2272392833 11) - (step C D A B H 11 1839030562 16) - (step B C D A H 14 4259657740 23) - (step A B C D H 1 2763975236 4) - (step D A B C H 4 1272893353 11) - (step C D A B H 7 4139469664 16) - (step B C D A H 10 3200236656 23) - (step A B C D H 13 681279174 4) - (step D A B C H 0 3936430074 11) - (step C D A B H 3 3572445317 16) - (step B C D A H 6 76029189 23) - (step A B C D H 9 3654602809 4) - (step D A B C H 12 3873151461 11) - (step C D A B H 15 530742520 16) - (step B C D A H 2 3299628645 23) + (step A B C D H 5 4 4294588738) + (step D A B C H 8 11 2272392833) + (step C D A B H 11 16 1839030562) + (step B C D A H 14 23 4259657740) + (step A B C D H 1 4 2763975236) + (step D A B C H 4 11 1272893353) + (step C D A B H 7 16 4139469664) + (step B C D A H 10 23 3200236656) + (step A B C D H 13 4 681279174) + (step D A B C H 0 11 3936430074) + (step C D A B H 3 16 3572445317) + (step B C D A H 6 23 76029189) + (step A B C D H 9 4 3654602809) + (step D A B C H 12 11 3873151461) + (step C D A B H 15 16 530742520) + (step B C D A H 2 23 3299628645) ;;--- - (step A B C D II 0 4096336452 6) - (step D A B C II 7 1126891415 10) - (step C D A B II 14 2878612391 15) - (step B C D A II 5 4237533241 21) - (step A B C D II 12 1700485571 6) - (step D A B C II 3 2399980690 10) - (step C D A B II 10 4293915773 15) - (step B C D A II 1 2240044497 21) - (step A B C D II 8 1873313359 6) - (step D A B C II 15 4264355552 10) - (step C D A B II 6 2734768916 15) - (step B C D A II 13 1309151649 21) - (step A B C D II 4 4149444226 6) - (step D A B C II 11 3174756917 10) - (step C D A B II 2 718787259 15) - (step B C D A II 9 3951481745 21) + (step A B C D II 0 6 4096336452) + (step D A B C II 7 10 1126891415) + (step C D A B II 14 15 2878612391) + (step B C D A II 5 21 4237533241) + (step A B C D II 12 6 1700485571) + (step D A B C II 3 10 2399980690) + (step C D A B II 10 15 4293915773) + (step B C D A II 1 21 2240044497) + (step A B C D II 8 6 1873313359) + (step D A B C II 15 10 4264355552) + (step C D A B II 6 15 2734768916) + (step B C D A II 13 21 1309151649) + (step A B C D II 4 6 4149444226) + (step D A B C II 11 10 3174756917) + (step C D A B II 2 15 718787259) + (step B C D A II 9 21 3951481745) ;;--- (word+=! A AA) (word+=! B BB) (word+=! C CC) (word+=! D DD) ;;---