Update of /cvsroot/dcplusplus/dcplusplus/yassl/taocrypt/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25210/yassl/taocrypt/src Modified Files: integer.cpp misc.cpp twofish.cpp arc4.cpp md5.cpp asn.cpp des.cpp ripemd.cpp aes.cpp sha.cpp blowfish.cpp Log Message: yassl update, installer fix Index: misc.cpp =================================================================== RCS file: /cvsroot/dcplusplus/dcplusplus/yassl/taocrypt/src/misc.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** misc.cpp 27 Nov 2005 19:23:07 -0000 1.1 --- misc.cpp 19 Feb 2006 16:51:07 -0000 1.2 *************** *** 27,82 **** #include <new> // for NewHandler - - void* operator new(size_t sz, TaoCrypt::new_t) - { #ifdef YASSL_PURE_C - void* ptr = malloc(sz ? sz : 1); - if (!ptr) abort(); ! return ptr; ! #else ! return ::operator new(sz); ! #endif ! } - void operator delete(void* ptr, TaoCrypt::new_t) - { - #ifdef YASSL_PURE_C - if (ptr) free(ptr); - #else - ::operator delete(ptr); - #endif - } - void* operator new[](size_t sz, TaoCrypt::new_t nt) - { - return ::operator new(sz, nt); - } - void operator delete[](void* ptr, TaoCrypt::new_t nt) - { - ::operator delete(ptr, nt); - } - /* uncomment to test - // make sure not using globals anywhere by forgetting to use overloaded - void* operator new(size_t sz); ! void operator delete(void* ptr); ! void* operator new[](size_t sz); ! void operator delete[](void* ptr); ! */ - namespace TaoCrypt { ! new_t tc; // for library new --- 27,81 ---- #include <new> // for NewHandler #ifdef YASSL_PURE_C ! void* operator new(size_t sz, TaoCrypt::new_t) ! { ! void* ptr = malloc(sz ? sz : 1); ! if (!ptr) abort(); + return ptr; + } + void operator delete(void* ptr, TaoCrypt::new_t) + { + if (ptr) free(ptr); + } + void* operator new[](size_t sz, TaoCrypt::new_t nt) + { + return ::operator new(sz, nt); + } + void operator delete[](void* ptr, TaoCrypt::new_t nt) + { + ::operator delete(ptr, nt); + } ! /* uncomment to test ! // make sure not using globals anywhere by forgetting to use overloaded ! void* operator new(size_t sz); ! void operator delete(void* ptr); ! void* operator new[](size_t sz); + void operator delete[](void* ptr); + */ + namespace TaoCrypt { ! new_t tc; // for library new ! ! } ! ! #endif // YASSL_PURE_C ! ! ! namespace TaoCrypt { Index: aes.cpp =================================================================== RCS file: /cvsroot/dcplusplus/dcplusplus/yassl/taocrypt/src/aes.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** aes.cpp 27 Nov 2005 19:23:07 -0000 1.1 --- aes.cpp 19 Feb 2006 16:51:07 -0000 1.2 *************** *** 471,474 **** --- 471,475 ---- AS2( movd mm3, edi ) \ AS2( movd mm4, ebx ) \ + AS2( sub esp, 4 ) \ AS2( movd mm7, ebp ) \ AS2( mov [ebp - 4], esi ) \ *************** *** 478,484 **** #define EPILOG() \ ! AS2( movd esp, mm7 ) \ ! AS2( mov esi, [ebp - 4] ) \ AS2( movd ebx, mm4 ) \ AS2( movd edi, mm3 ) \ AS1( emms ) \ --- 479,485 ---- #define EPILOG() \ ! AS2( mov esp, ebp ) \ AS2( movd ebx, mm4 ) \ + AS2( mov esi, [ebp - 4] ) \ AS2( movd edi, mm3 ) \ AS1( emms ) \ *************** *** 493,496 **** --- 494,498 ---- AS2( movd mm3, edi ) \ AS2( movd mm4, ebx ) \ + AS2( sub esp, 4 ) \ AS2( movd mm7, ebp ) \ AS2( mov [ebp - 4], esi ) \ *************** *** 520,525 **** PROLOG() ! AS2( mov edx, DWORD PTR [ecx + 56] ) // rounds ! AS2( lea edi, [ecx + 60] ) // rk AS1( dec edx ) --- 522,532 ---- PROLOG() ! #ifdef OLD_GCC_OFFSET ! AS2( mov edx, DWORD PTR [ecx + 60] ) // rounds ! AS2( lea edi, [ecx + 64] ) // rk ! #else ! AS2( mov edx, DWORD PTR [ecx + 56] ) // rounds ! AS2( lea edi, [ecx + 60] ) // rk ! #endif AS1( dec edx ) *************** *** 528,549 **** AS2( mov eax, DWORD PTR [esi] ) - AS1( bswap eax ) - AS2( mov edx, DWORD PTR [edi] ) - AS2( xor eax, edx ) // s0 - AS2( mov ebx, DWORD PTR [esi + 4] ) - AS1( bswap ebx ) - AS2( mov edx, DWORD PTR [edi + 4] ) - AS2( xor ebx, edx ) // s1 - AS2( mov ecx, DWORD PTR [esi + 8] ) - AS1( bswap ecx ) - AS2( mov edx, DWORD PTR [edi + 8] ) - AS2( xor ecx, edx ) // s2 - AS2( mov edx, DWORD PTR [esi + 12] ) AS1( bswap edx ) ! AS2( mov esp, DWORD PTR [edi + 12] ) ! AS2( xor edx, esp ) // s3 AS1(loop1: ) --- 535,551 ---- AS2( mov eax, DWORD PTR [esi] ) AS2( mov ebx, DWORD PTR [esi + 4] ) AS2( mov ecx, DWORD PTR [esi + 8] ) AS2( mov edx, DWORD PTR [esi + 12] ) + + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) AS1( bswap edx ) ! ! AS2( xor eax, DWORD PTR [edi] ) // s0 ! AS2( xor ebx, DWORD PTR [edi + 4] ) // s1 ! AS2( xor ecx, DWORD PTR [edi + 8] ) // s2 ! AS2( xor edx, DWORD PTR [edi + 12] ) // s3 AS1(loop1: ) *************** *** 557,574 **** AS2( mov esi, eax ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + esi*4] ) AS2( mov edi, ebx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esp, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx esi, ch ) ! AS2( xor esp, DWORD PTR [ebp + 2048 + esi*4] ) AS2( movzx edi, dl ) ! AS2( xor esp, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm0, esp ) /* Put1 (mm1) = --- 559,576 ---- AS2( mov esi, eax ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + esi*4] ) AS2( mov edi, ebx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx edi, ch ) ! AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) AS2( movzx edi, dl ) ! AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm0, esi ) /* Put1 (mm1) = *************** *** 581,598 **** AS2( mov esi, ebx ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + esi*4] ) AS2( mov edi, ecx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esp, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx esi, dh ) ! AS2( xor esp, DWORD PTR [ebp + 2048 + esi*4] ) AS2( movzx edi, al ) ! AS2( xor esp, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm1, esp ) --- 583,600 ---- AS2( mov esi, ebx ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + esi*4] ) AS2( mov edi, ecx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx edi, dh ) ! AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) AS2( movzx edi, al ) ! AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm1, esi ) *************** *** 606,623 **** AS2( mov esi, ecx ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + esi*4] ) AS2( mov edi, edx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esp, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx esi, ah ) ! AS2( xor esp, DWORD PTR [ebp + 2048 + esi*4] ) AS2( movzx edi, bl ) ! AS2( xor esp, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm2, esp ) /* Put3 (edx) = --- 608,625 ---- AS2( mov esi, ecx ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + esi*4] ) AS2( mov edi, edx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx edi, ah ) ! AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) AS2( movzx edi, bl ) ! AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm2, esi ) /* Put3 (edx) = *************** *** 645,662 **** // xOr ! AS2( movd esi, mm6 ) // rk ! AS2( add esi, 16 ) ! AS2( movd mm6, esi ) // save back AS2( movd eax, mm0 ) AS2( movd ebx, mm1 ) AS2( movd ecx, mm2 ) AS2( xor eax, DWORD PTR [esi] ) AS2( xor ebx, DWORD PTR [esi + 4] ) AS2( xor ecx, DWORD PTR [esi + 8] ) AS2( xor edx, DWORD PTR [esi + 12] ) - AS2( movd edi, mm5 ) AS1( dec edi ) AS2( movd mm5, edi ) --- 647,664 ---- // xOr ! AS2( movd esi, mm6 ) // rk AS2( movd eax, mm0 ) + AS2( add esi, 16 ) AS2( movd ebx, mm1 ) + AS2( movd mm6, esi ) // save back AS2( movd ecx, mm2 ) AS2( xor eax, DWORD PTR [esi] ) AS2( xor ebx, DWORD PTR [esi + 4] ) + AS2( movd edi, mm5 ) AS2( xor ecx, DWORD PTR [esi + 8] ) AS2( xor edx, DWORD PTR [esi + 12] ) AS1( dec edi ) AS2( movd mm5, edi ) *************** *** 674,698 **** AS2( mov esi, eax ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esp, 4278190080 ) AS2( mov edi, ebx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 16711680 ) ! AS2( xor esp, esi ) ! AS2( movzx esi, ch ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + esi*4] ) AS2( and edi, 65280 ) ! AS2( xor esp, edi ) AS2( movzx edi, dl ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 255 ) ! AS2( xor esp, esi ) ! AS2( movd mm0, esp ) /* --- 676,700 ---- AS2( mov esi, eax ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esi, 4278190080 ) AS2( mov edi, ebx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 16711680 ) ! AS2( xor esi, edi ) ! AS2( movzx edi, ch ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) AS2( and edi, 65280 ) ! AS2( xor esi, edi ) AS2( movzx edi, dl ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 255 ) ! AS2( xor esi, edi ) ! AS2( movd mm0, esi ) /* *************** *** 705,729 **** AS2( mov esi, ebx ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esp, 4278190080 ) AS2( mov edi, ecx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 16711680 ) ! AS2( xor esp, esi ) ! AS2( movzx esi, dh ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + esi*4] ) AS2( and edi, 65280 ) ! AS2( xor esp, edi ) AS2( movzx edi, al ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 255 ) ! AS2( xor esp, esi ) ! AS2( movd mm1, esp ) /* --- 707,731 ---- AS2( mov esi, ebx ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esi, 4278190080 ) AS2( mov edi, ecx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 16711680 ) ! AS2( xor esi, edi ) ! AS2( movzx edi, dh ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) AS2( and edi, 65280 ) ! AS2( xor esi, edi ) AS2( movzx edi, al ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 255 ) ! AS2( xor esi, edi ) ! AS2( movd mm1, esi ) /* *************** *** 736,760 **** AS2( mov esi, ecx ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esp, 4278190080 ) AS2( mov edi, edx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 16711680 ) ! AS2( xor esp, esi ) ! AS2( movzx esi, ah ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + esi*4] ) AS2( and edi, 65280 ) ! AS2( xor esp, edi ) AS2( movzx edi, bl ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 255 ) ! AS2( xor esp, esi ) ! AS2( movd mm2, esp ) /* --- 738,762 ---- AS2( mov esi, ecx ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esi, 4278190080 ) AS2( mov edi, edx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 16711680 ) ! AS2( xor esi, edi ) ! AS2( movzx edi, ah ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) AS2( and edi, 65280 ) ! AS2( xor esi, edi ) AS2( movzx edi, bl ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 255 ) ! AS2( xor esi, edi ) ! AS2( movd mm2, esi ) /* *************** *** 789,797 **** // xOr - AS2( movd esi, mm6 ) // rk - AS2( add esi, 16 ) - AS2( movd eax, mm0 ) AS2( movd ebx, mm1 ) AS2( movd ecx, mm2 ) --- 791,798 ---- // xOr AS2( movd eax, mm0 ) + AS2( movd esi, mm6 ) // rk AS2( movd ebx, mm1 ) + AS2( add esi, 16 ) AS2( movd ecx, mm2 ) *************** *** 807,812 **** AS1( bswap eax ) AS1( bswap ebx ) - AS1( bswap ecx ) - AS1( bswap edx ) // store --- 808,811 ---- *************** *** 816,819 **** --- 815,822 ---- AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock #endif + + AS1( bswap ecx ) + AS1( bswap edx ) + AS2( mov DWORD PTR [esi], eax ) AS2( mov DWORD PTR [esi + 4], ebx ) *************** *** 834,863 **** PROLOG() ! AS2( mov edx, DWORD PTR [ecx + 56] ) // rounds ! AS2( lea edi, [ecx + 60] ) // rk AS1( dec edx ) AS2( movd mm6, edi ) // save rk AS2( movd mm5, edx ) // save rounds - - AS2( mov eax, DWORD PTR [esi] ) - AS1( bswap eax ) - AS2( mov edx, DWORD PTR [edi] ) - AS2( xor eax, edx ) // s0 AS2( mov ebx, DWORD PTR [esi + 4] ) - AS1( bswap ebx ) - AS2( mov edx, DWORD PTR [edi + 4] ) - AS2( xor ebx, edx ) // s1 - AS2( mov ecx, DWORD PTR [esi + 8] ) - AS1( bswap ecx ) - AS2( mov edx, DWORD PTR [edi + 8] ) - AS2( xor ecx, edx ) // s2 - AS2( mov edx, DWORD PTR [esi + 12] ) AS1( bswap edx ) ! AS2( mov esp, DWORD PTR [edi + 12] ) ! AS2( xor edx, esp ) // s3 AS1(loop2: ) --- 837,867 ---- PROLOG() ! #ifdef OLD_GCC_OFFSET ! AS2( mov edx, DWORD PTR [ecx + 60] ) // rounds ! AS2( lea edi, [ecx + 64] ) // rk ! #else ! AS2( mov edx, DWORD PTR [ecx + 56] ) // rounds ! AS2( lea edi, [ecx + 60] ) // rk ! #endif AS1( dec edx ) AS2( movd mm6, edi ) // save rk AS2( movd mm5, edx ) // save rounds + AS2( mov eax, DWORD PTR [esi] ) AS2( mov ebx, DWORD PTR [esi + 4] ) AS2( mov ecx, DWORD PTR [esi + 8] ) AS2( mov edx, DWORD PTR [esi + 12] ) + + AS1( bswap eax ) + AS1( bswap ebx ) + AS1( bswap ecx ) AS1( bswap edx ) ! ! AS2( xor eax, DWORD PTR [edi] ) // s0 ! AS2( xor ebx, DWORD PTR [edi + 4] ) // s1 ! AS2( xor ecx, DWORD PTR [edi + 8] ) // s2 ! AS2( xor edx, DWORD PTR [edi + 12] ) // s3 ! AS1(loop2: ) *************** *** 870,887 **** AS2( mov esi, eax ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + esi*4] ) AS2( mov edi, edx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esp, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx esi, ch ) ! AS2( xor esp, DWORD PTR [ebp + 2048 + esi*4] ) AS2( movzx edi, bl ) ! AS2( xor esp, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm0, esp ) /* Put1 (mm1) = --- 874,891 ---- AS2( mov esi, eax ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + esi*4] ) AS2( mov edi, edx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx edi, ch ) ! AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) AS2( movzx edi, bl ) ! AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm0, esi ) /* Put1 (mm1) = *************** *** 893,910 **** AS2( mov esi, ebx ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + esi*4] ) AS2( mov edi, eax ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esp, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx esi, dh ) ! AS2( xor esp, DWORD PTR [ebp + 2048 + esi*4] ) AS2( movzx edi, cl ) ! AS2( xor esp, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm1, esp ) /* Put2 (mm2) = --- 897,914 ---- AS2( mov esi, ebx ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + esi*4] ) AS2( mov edi, eax ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx edi, dh ) ! AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) AS2( movzx edi, cl ) ! AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm1, esi ) /* Put2 (mm2) = *************** *** 916,933 **** AS2( mov esi, ecx ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + esi*4] ) AS2( mov edi, ebx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esp, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx esi, ah ) ! AS2( xor esp, DWORD PTR [ebp + 2048 + esi*4] ) AS2( movzx edi, dl ) ! AS2( xor esp, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm2, esp ) /* Put3 (edx) = --- 920,937 ---- AS2( mov esi, ecx ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + esi*4] ) AS2( mov edi, ebx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( xor esi, DWORD PTR [ebp + 1024 + edi*4] ) ! AS2( movzx edi, ah ) ! AS2( xor esi, DWORD PTR [ebp + 2048 + edi*4] ) AS2( movzx edi, dl ) ! AS2( xor esi, DWORD PTR [ebp + 3072 + edi*4] ) ! AS2( movd mm2, esi ) /* Put3 (edx) = *************** *** 984,1008 **** AS2( mov esi, eax ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esp, 4278190080 ) AS2( mov edi, edx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 16711680 ) ! AS2( xor esp, esi ) ! AS2( movzx esi, ch ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + esi*4] ) AS2( and edi, 65280 ) ! AS2( xor esp, edi ) AS2( movzx edi, bl ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 255 ) ! AS2( xor esp, esi ) ! AS2( movd mm0, esp ) /* --- 988,1012 ---- AS2( mov esi, eax ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esi, 4278190080 ) AS2( mov edi, edx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 16711680 ) ! AS2( xor esi, edi ) ! AS2( movzx edi, ch ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) AS2( and edi, 65280 ) ! AS2( xor esi, edi ) AS2( movzx edi, bl ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 255 ) ! AS2( xor esi, edi ) ! AS2( movd mm0, esi ) /* *************** *** 1015,1039 **** AS2( mov esi, ebx ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esp, 4278190080 ) AS2( mov edi, eax ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 16711680 ) ! AS2( xor esp, esi ) ! AS2( movzx esi, dh ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + esi*4] ) AS2( and edi, 65280 ) ! AS2( xor esp, edi ) AS2( movzx edi, cl ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 255 ) ! AS2( xor esp, esi ) ! AS2( movd mm1, esp ) /* --- 1019,1043 ---- AS2( mov esi, ebx ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esi, 4278190080 ) AS2( mov edi, eax ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 16711680 ) ! AS2( xor esi, edi ) ! AS2( movzx edi, dh ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) AS2( and edi, 65280 ) ! AS2( xor esi, edi ) AS2( movzx edi, cl ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 255 ) ! AS2( xor esi, edi ) ! AS2( movd mm1, esi ) /* *************** *** 1046,1070 **** AS2( mov esi, ecx ) AS2( shr esi, 24 ) ! AS2( mov esp, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esp, 4278190080 ) AS2( mov edi, ebx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 16711680 ) ! AS2( xor esp, esi ) ! AS2( movzx esi, ah ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + esi*4] ) AS2( and edi, 65280 ) ! AS2( xor esp, edi ) AS2( movzx edi, dl ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and esi, 255 ) ! AS2( xor esp, esi ) ! AS2( movd mm2, esp ) /* --- 1050,1074 ---- AS2( mov esi, ecx ) AS2( shr esi, 24 ) ! AS2( mov esi, DWORD PTR [ebp + 4096 + esi*4] ) ! AS2( and esi, 4278190080 ) AS2( mov edi, ebx ) AS2( shr edi, 16 ) AS2( and edi, 255 ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 16711680 ) ! AS2( xor esi, edi ) ! AS2( movzx edi, ah ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) AS2( and edi, 65280 ) ! AS2( xor esi, edi ) AS2( movzx edi, dl ) ! AS2( mov edi, DWORD PTR [ebp + 4096 + edi*4] ) ! AS2( and edi, 255 ) ! AS2( xor esi, edi ) ! AS2( movd mm2, esi ) /* Index: sha.cpp =================================================================== RCS file: /cvsroot/dcplusplus/dcplusplus/yassl/taocrypt/src/sha.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sha.cpp 27 Nov 2005 19:23:07 -0000 1.1 --- sha.cpp 19 Feb 2006 16:51:07 -0000 1.2 *************** *** 27,32 **** #include "sha.hpp" - #include <stdio.h> // for vc7 test - #if defined(TAOCRYPT_X86ASM_AVAILABLE) && defined(TAO_ASM) --- 27,30 ---- *************** *** 225,243 **** // use esi for f ! // use esp as tmp #define ASMR0(v,w,x,y,z,i) \ AS2( mov esi, x ) \ ! AS2( mov esp, [edi - i * 4] ) \ AS2( xor esi, y ) \ AS2( and esi, w ) \ ! AS2( lea z, [esp + z + 0x5A827999] ) \ ! AS2( mov esp, v ) \ AS2( xor esi, y ) \ ! AS2( rol esp, 5 ) \ AS2( add z, esi ) \ AS2( rol w, 30 ) \ ! AS2( add z, esp ) --- 223,241 ---- // use esi for f ! // use edi as tmp #define ASMR0(v,w,x,y,z,i) \ AS2( mov esi, x ) \ ! AS2( mov edi, [esp + i * 4] ) \ AS2( xor esi, y ) \ AS2( and esi, w ) \ ! AS2( lea z, [edi + z + 0x5A827999] ) \ ! AS2( mov edi, v ) \ AS2( xor esi, y ) \ ! AS2( rol edi, 5 ) \ AS2( add z, esi ) \ AS2( rol w, 30 ) \ ! AS2( add z, edi ) *************** *** 271,290 **** #define ASMR1(v,w,x,y,z,i,W1,W2,W3,W4) \ ! AS2( mov esp, [edi - W1 * 4] ) \ AS2( mov esi, x ) \ ! AS2( xor esp, [edi - W2 * 4] ) \ AS2( xor esi, y ) \ ! AS2( xor esp, [edi - W3 * 4] ) \ AS2( and esi, w ) \ ! AS2( xor esp, [edi - W4 * 4] ) \ ! AS2( rol esp, 1 ) \ AS2( xor esi, y ) \ ! AS2( mov [edi - W1 * 4], esp ) \ ! AS2( lea z, [esp + z + 0x5A827999] ) \ ! AS2( mov esp, v ) \ ! AS2( rol esp, 5 ) \ AS2( add z, esi ) \ AS2( rol w, 30 ) \ ! AS2( add z, esp ) --- 269,288 ---- #define ASMR1(v,w,x,y,z,i,W1,W2,W3,W4) \ ! AS2( mov edi, [esp + W1 * 4] ) \ AS2( mov esi, x ) \ ! AS2( xor edi, [esp + W2 * 4] ) \ AS2( xor esi, y ) \ ! AS2( xor edi, [esp + W3 * 4] ) \ AS2( and esi, w ) \ ! AS2( xor edi, [esp + W4 * 4] ) \ ! AS2( rol edi, 1 ) \ AS2( xor esi, y ) \ ! AS2( mov [esp + W1 * 4], edi ) \ ! AS2( lea z, [edi + z + 0x5A827999] ) \ ! AS2( mov edi, v ) \ ! AS2( rol edi, 5 ) \ AS2( add z, esi ) \ AS2( rol w, 30 ) \ ! AS2( add z, edi ) *************** *** 292,310 **** #define ASMR2(v,w,x,y,z,i,W1,W2,W3,W4) \ ! AS2( mov esp, [edi - W1 * 4] ) \ AS2( mov esi, x ) \ ! AS2( xor esp, [edi - W2 * 4] ) \ AS2( xor esi, y ) \ ! AS2( xor esp, [edi - W3 * 4] ) \ AS2( xor esi, w ) \ ! AS2( xor esp, [edi - W4 * 4] ) \ ! AS2( rol esp, 1 ) \ AS2( add z, esi ) \ ! AS2( mov [edi - W1 * 4], esp ) \ ! AS2( lea z, [esp + z + 0x6ED9EBA1] ) \ ! AS2( mov esp, v ) \ ! AS2( rol esp, 5 ) \ AS2( rol w, 30 ) \ ! AS2( add z, esp ) --- 290,308 ---- #define ASMR2(v,w,x,y,z,i,W1,W2,W3,W4) \ ! AS2( mov edi, [esp + W1 * 4] ) \ AS2( mov esi, x ) \ ! AS2( xor edi, [esp + W2 * 4] ) \ AS2( xor esi, y ) \ ! AS2( xor edi, [esp + W3 * 4] ) \ AS2( xor esi, w ) \ ! AS2( xor edi, [esp + W4 * 4] ) \ ! AS2( rol edi, 1 ) \ AS2( add z, esi ) \ ! AS2( mov [esp + W1 * 4], edi ) \ ! AS2( lea z, [edi + z + 0x6ED9EBA1] ) \ ! AS2( mov edi, v ) \ ! AS2( rol edi, 5 ) \ AS2( rol w, 30 ) \ ! AS2( add z, edi ) *************** *** 313,336 **** #define ASMR3(v,w,x,y,z,i,W1,W2,W3,W4) \ ! AS2( mov esp, [edi - W1 * 4] ) \ AS2( mov esi, x ) \ ! AS2( xor esp, [edi - W2 * 4] ) \ AS2( or esi, w ) \ ! AS2( xor esp, [edi - W3 * 4] ) \ AS2( and esi, y ) \ ! AS2( xor esp, [edi - W4 * 4] ) \ AS2( movd mm0, esi ) \ ! AS2( rol esp, 1 ) \ AS2( mov esi, x ) \ ! AS2( mov [edi - W1 * 4], esp ) \ AS2( and esi, w ) \ ! AS2( lea z, [esp + z + 0x8F1BBCDC] ) \ ! AS2( movd esp, mm0 ) \ ! AS2( or esi, esp ) \ ! AS2( mov esp, v ) \ ! AS2( rol esp, 5 ) \ AS2( add z, esi ) \ AS2( rol w, 30 ) \ ! AS2( add z, esp ) --- 311,334 ---- #define ASMR3(v,w,x,y,z,i,W1,W2,W3,W4) \ ! AS2( mov edi, [esp + W1 * 4] ) \ AS2( mov esi, x ) \ ! AS2( xor edi, [esp + W2 * 4] ) \ AS2( or esi, w ) \ ! AS2( xor edi, [esp + W3 * 4] ) \ AS2( and esi, y ) \ ! AS2( xor edi, [esp + W4 * 4] ) \ AS2( movd mm0, esi ) \ ! AS2( rol edi, 1 ) \ AS2( mov esi, x ) \ ! AS2( mov [esp + W1 * 4], edi ) \ AS2( and esi, w ) \ ! AS2( lea z, [edi + z + 0x8F1BBCDC] ) \ ! AS2( movd edi, mm0 ) \ ! AS2( or esi, edi ) \ ! AS2( mov edi, v ) \ ! AS2( rol edi, 5 ) \ AS2( add z, esi ) \ AS2( rol w, 30 ) \ ! AS2( add z, edi ) *************** *** 338,356 **** #define ASMR4(v,w,x,y,z,i,W1,W2,W3,W4) \ ! AS2( mov esp, [edi - W1 * 4] ) \ AS2( mov esi, x ) \ ! AS2( xor esp, [edi - W2 * 4] ) \ AS2( xor esi, y ) \ ! AS2( xor esp, [edi - W3 * 4] ) \ AS2( xor esi, w ) \ ! AS2( xor esp, [edi - W4 * 4] ) \ ! AS2( rol esp, 1 ) \ AS2( add z, esi ) \ ! AS2( mov [edi - W1 * 4], esp ) \ ! AS2( lea z, [esp + z + 0xCA62C1D6] ) \ ! AS2( mov esp, v ) \ ! AS2( rol esp, 5 ) \ AS2( rol w, 30 ) \ ! AS2( add z, esp ) --- 336,354 ---- #define ASMR4(v,w,x,y,z,i,W1,W2,W3,W4) \ ! AS2( mov edi, [esp + W1 * 4] ) \ AS2( mov esi, x ) \ ! AS2( xor edi, [esp + W2 * 4] ) \ AS2( xor esi, y ) \ ! AS2( xor edi, [esp + W3 * 4] ) \ AS2( xor esi, w ) \ ! AS2( xor edi, [esp + W4 * 4] ) \ ! AS2( rol edi, 1 ) \ AS2( add z, esi ) \ ! AS2( mov [esp + W1 * 4], edi ) \ ! AS2( lea z, [edi + z + 0xCA62C1D6] ) \ ! AS2( mov edi, v ) \ ! AS2( rol edi, 5 ) \ AS2( rol w, 30 ) \ ! AS2( add z, edi ) *************** *** 375,381 **** #define EPILOG() \ ! AS2( movd esp, mm6 ) \ AS2( movd esi, mm5 ) \ AS2( movd ebx, mm4 ) \ AS2( movd edi, mm3 ) \ AS1( emms ) \ --- 373,380 ---- #define EPILOG() \ ! AS2( movd ebp, mm6 ) \ AS2( movd esi, mm5 ) \ AS2( movd ebx, mm4 ) \ + AS2( mov esp, ebp ) \ AS2( movd edi, mm3 ) \ AS1( emms ) \ *************** *** 409,416 **** AS2( mov esi, ecx ) ! AS2( add esi, 16 ) // digest_[0] AS2( movd mm2, eax ) // store times_ AS2( movd mm1, esi ) // store digest_ AS1( loopStart: ) --- 408,423 ---- AS2( mov esi, ecx ) ! ! #ifdef OLD_GCC_OFFSET ! AS2( add esi, 20 ) // digest_[0] ! #else ! AS2( add esi, 16 ) // digest_[0] ! #endif ! AS2( movd mm2, eax ) // store times_ AS2( movd mm1, esi ) // store digest_ + AS2( sub esp, 68 ) // make room on stack + AS1( loopStart: ) *************** *** 428,435 **** AS1( bswap edx ) ! AS2( mov [ebp - 4], eax ) ! AS2( mov [ebp - 8], ebx ) ! AS2( mov [ebp - 12], ecx ) ! AS2( mov [ebp - 16], edx ) // part 2 --- 435,442 ---- AS1( bswap edx ) ! AS2( mov [esp], eax ) ! AS2( mov [esp + 4], ebx ) ! AS2( mov [esp + 8], ecx ) ! AS2( mov [esp + 12], edx ) // part 2 *************** *** 444,451 **** AS1( bswap edx ) ! AS2( mov [ebp - 20], eax ) ! AS2( mov [ebp - 24], ebx ) ! AS2( mov [ebp - 28], ecx ) ! AS2( mov [ebp - 32], edx ) --- 451,458 ---- AS1( bswap edx ) ! AS2( mov [esp + 16], eax ) ! AS2( mov [esp + 20], ebx ) ! AS2( mov [esp + 24], ecx ) ! AS2( mov [esp + 28], edx ) *************** *** 461,468 **** AS1( bswap edx ) ! AS2( mov [ebp - 36], eax ) ! AS2( mov [ebp - 40], ebx ) ! AS2( mov [ebp - 44], ecx ) ! AS2( mov [ebp - 48], edx ) --- 468,475 ---- AS1( bswap edx ) ! AS2( mov [esp + 32], eax ) ! AS2( mov [esp + 36], ebx ) ! AS2( mov [esp + 40], ecx ) ! AS2( mov [esp + 44], edx ) *************** *** 478,490 **** AS1( bswap edx ) ! AS2( mov [ebp - 52], eax ) ! AS2( mov [ebp - 56], ebx ) ! AS2( mov [ebp - 60], ecx ) ! AS2( mov [ebp - 64], edx ) ! ! AS2( mov [ebp - 68], edi ) // store edi for end ! // set edi to beginning of byte reversed input ! AS2( lea edi, [ebp - 4] ) // read from digest_ --- 485,494 ---- AS1( bswap edx ) ! AS2( mov [esp + 48], eax ) ! AS2( mov [esp + 52], ebx ) ! AS2( mov [esp + 56], ecx ) ! AS2( mov [esp + 60], edx ) ! AS2( mov [esp + 64], edi ) // store edi for end // read from digest_ *************** *** 495,502 **** AS2( mov ebp, [esi + 16] ) // e1 - // setup - AS2( mov esi, ecx ) - AS2( mov esp, [edi] ) - ASMR0(eax, ebx, ecx, edx, ebp, 0) --- 499,502 ---- *************** *** 596,609 **** // setup next round ! AS2( movd ebp, mm6 ) // original ebp ! AS2( movd esp, mm2 ) // times ! AS2( mov edi, DWORD PTR [ebp - 68] ) // data AS2( add edi, 64 ) // next round of data ! AS2( mov [ebp - 68], edi ) // restore ! AS1( dec esp ) ! AS2( movd mm2, esp ) AS1( jnz loopStart ) --- 596,608 ---- // setup next round ! AS2( movd ebp, mm2 ) // times ! AS2( mov edi, DWORD PTR [esp + 64] ) // data AS2( add edi, 64 ) // next round of data ! AS2( mov [esp + 64], edi ) // restore ! AS1( dec ebp ) ! AS2( movd mm2, ebp ) AS1( jnz loopStart ) Index: arc4.cpp =================================================================== RCS file: /cvsroot/dcplusplus/dcplusplus/yassl/taocrypt/src/arc4.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** arc4.cpp 27 Nov 2005 19:23:07 -0000 1.1 --- arc4.cpp 19 Feb 2006 16:51:07 -0000 1.2 *************** *** 122,128 **** #define EPILOG() \ ! AS2( movd esp, mm6 ) \ AS2( movd esi, mm5 ) \ AS2( movd ebx, mm4 ) \ AS2( movd edi, mm3 ) \ AS1( emms ) \ --- 122,129 ---- #define EPILOG() \ ! AS2( movd ebp, mm6 ) \ AS2( movd esi, mm5 ) \ AS2( movd ebx, mm4 ) \ + AS2( mov esp, ebp ) \ AS2( movd edi, mm3 ) \ AS1( emms ) \ *************** *** 157,173 **** PROLOG() ! AS2( cmp ebp, 0 ) ! AS1( jz done ) ! AS2( mov esp, ecx ) ! AS2( add esp, 2 ) // state_ AS2( movzx edx, BYTE PTR [ecx + 1] ) // y AS2( movzx ecx, BYTE PTR [ecx] ) // x // setup loop // a = s[x]; ! AS2( movzx eax, BYTE PTR [esp + ecx] ) --- 158,175 ---- PROLOG() ! AS2( sub esp, 4 ) // make room + AS2( cmp ebp, 0 ) + AS1( jz nothing ... [truncated message content] |