ported md5bf to x86_64, thanks shino for helping me debug

This commit is contained in:
jensp 2010-01-31 22:03:28 +00:00
parent 4f0a446f0a
commit 08488f880a
4 changed files with 686 additions and 5 deletions

View file

@ -1,2 +1,3 @@
AUX md5bf-x86_64.patch 13647 RMD160 a2aabfdf0b9667ee4766c6d3dceea4aa41bd7cd5 SHA1 aacc9c9093ab88c32b8bf69610f2185581b4325d SHA256 02cdde481846caa5701829a4542d29eb4511e4d9e409170a967b4b738975b064
DIST md5bf-v0.1.tar 51202 RMD160 938a570c73c5899399fd6c415272a67264289d79 SHA1 2bfc05656e3a33018ac9e3c2de2b069193a91670 SHA256 8bc7ba891a839c5502ada2adc2f5a6db085dcabbef7f666fc6baeef420cb02b3
EBUILD md5bf-0.1.ebuild 679 RMD160 ee74d551f8db6d8b5eede24eeee29e798b0269c3 SHA1 77c8530ba2c90d7f2e75411b7faf6f621f1d12af SHA256 6792e8b87221ae78a46b16367ad317482b7e14b4c38dfb7988e84124531cdbe8
EBUILD md5bf-0.1.ebuild 798 RMD160 775f8cbf2c4a0651da93a9f5b97b3dad0dc470d7 SHA1 0449337d30e1f26e6a80ffeacbda9c7a1fd545b2 SHA256 1156a88e737f4b3f96ecdd72fdd83ab8c358e4641d5b73e1ef7bf538d5863430

View file

@ -1,3 +0,0 @@
MD5 54578f09fac55dc6666debda6ba706cd md5bf-v0.1.tar 51202
RMD160 938a570c73c5899399fd6c415272a67264289d79 md5bf-v0.1.tar 51202
SHA256 8bc7ba891a839c5502ada2adc2f5a6db085dcabbef7f666fc6baeef420cb02b3 md5bf-v0.1.tar 51202

View file

@ -0,0 +1,673 @@
Files old/md5bf-v0.1/core and md5bf-v0.1/core differ
diff -Nru old/md5bf-v0.1/main.c md5bf-v0.1/main.c
--- old/md5bf-v0.1/main.c 2006-07-25 12:09:38.000000000 +0200
+++ md5bf-v0.1/main.c 2010-01-31 22:45:42.160401113 +0100
@@ -21,7 +21,7 @@
#include <fcntl.h>
#include <errno.h>
#include "methods.h"
-
+#include <string.h>
void hexstr2bin(unsigned char *hexstr,unsigned char *bin);
void gen_string_set (char *param);
diff -Nru old/md5bf-v0.1/Makefile md5bf-v0.1/Makefile
--- old/md5bf-v0.1/Makefile 2006-07-23 21:51:47.000000000 +0200
+++ md5bf-v0.1/Makefile 2010-01-31 22:47:23.266656277 +0100
@@ -1,8 +1,9 @@
CC=gcc
AC=nasm
+AS=as
-md5bf: main.o md5_ossl.o m5-win32.o methods.o
- $(CC) -o md5bf main.o md5_ossl.o m5-win32.o methods.o
+md5bf: main.o md5_ossl.o md5-fast.o methods.o
+ $(CC) -o md5bf main.o md5_ossl.o md5-fast.o methods.o
main.o: main.c
$(CC) -c main.c
@@ -13,8 +14,8 @@
md5_ossl.o: md5_ossl.c
$(CC) -c md5_ossl.c
-m5-win32.o: m5-win32.asm
- $(AC) -f elf m5-win32.asm
+md5-fast.o: md5-x86_64.asm
+ $(AS) md5-x86_64.asm -o md5-fast.o
clean:
rm *.o md5bf
diff -Nru old/md5bf-v0.1/md5-x86_64.asm md5bf-v0.1/md5-x86_64.asm
--- old/md5bf-v0.1/md5-x86_64.asm 1970-01-01 01:00:00.000000000 +0100
+++ md5bf-v0.1/md5-x86_64.asm 2010-01-31 21:40:17.821400757 +0100
@@ -0,0 +1,630 @@
+.text
+.align 16
+
+.globl _md5_block_asm_host_order
+.type _md5_block_asm_host_order,@function
+_md5_block_asm_host_order:
+ pushq %rbp
+ pushq %rbx
+ pushq %r14
+ pushq %r15
+
+
+
+
+ movq %rdi,%rbp
+ shlq $6,%rdx
+ leaq (%rsi,%rdx,1),%rdi
+ movl 0(%rbp),%eax
+ movl 4(%rbp),%ebx
+ movl 8(%rbp),%ecx
+ movl 12(%rbp),%edx
+
+
+
+
+
+
+
+ cmpq %rdi,%rsi
+ je .Lend
+
+
+.Lloop:
+ movl %eax,%r8d
+ movl %ebx,%r9d
+ movl %ecx,%r14d
+ movl %edx,%r15d
+ movl 0(%rsi),%r10d
+ movl %edx,%r11d
+ xorl %ecx,%r11d
+ leal 3614090360(%rax,%r10,1),%eax
+ andl %ebx,%r11d
+ xorl %edx,%r11d
+ movl 4(%rsi),%r10d
+ addl %r11d,%eax
+ roll $7,%eax
+ movl %ecx,%r11d
+ addl %ebx,%eax
+ xorl %ebx,%r11d
+ leal 3905402710(%rdx,%r10,1),%edx
+ andl %eax,%r11d
+ xorl %ecx,%r11d
+ movl 8(%rsi),%r10d
+ addl %r11d,%edx
+ roll $12,%edx
+ movl %ebx,%r11d
+ addl %eax,%edx
+ xorl %eax,%r11d
+ leal 606105819(%rcx,%r10,1),%ecx
+ andl %edx,%r11d
+ xorl %ebx,%r11d
+ movl 12(%rsi),%r10d
+ addl %r11d,%ecx
+ roll $17,%ecx
+ movl %eax,%r11d
+ addl %edx,%ecx
+ xorl %edx,%r11d
+ leal 3250441966(%rbx,%r10,1),%ebx
+ andl %ecx,%r11d
+ xorl %eax,%r11d
+ movl 16(%rsi),%r10d
+ addl %r11d,%ebx
+ roll $22,%ebx
+ movl %edx,%r11d
+ addl %ecx,%ebx
+ xorl %ecx,%r11d
+ leal 4118548399(%rax,%r10,1),%eax
+ andl %ebx,%r11d
+ xorl %edx,%r11d
+ movl 20(%rsi),%r10d
+ addl %r11d,%eax
+ roll $7,%eax
+ movl %ecx,%r11d
+ addl %ebx,%eax
+ xorl %ebx,%r11d
+ leal 1200080426(%rdx,%r10,1),%edx
+ andl %eax,%r11d
+ xorl %ecx,%r11d
+ movl 24(%rsi),%r10d
+ addl %r11d,%edx
+ roll $12,%edx
+ movl %ebx,%r11d
+ addl %eax,%edx
+ xorl %eax,%r11d
+ leal 2821735955(%rcx,%r10,1),%ecx
+ andl %edx,%r11d
+ xorl %ebx,%r11d
+ movl 28(%rsi),%r10d
+ addl %r11d,%ecx
+ roll $17,%ecx
+ movl %eax,%r11d
+ addl %edx,%ecx
+ xorl %edx,%r11d
+ leal 4249261313(%rbx,%r10,1),%ebx
+ andl %ecx,%r11d
+ xorl %eax,%r11d
+ movl 32(%rsi),%r10d
+ addl %r11d,%ebx
+ roll $22,%ebx
+ movl %edx,%r11d
+ addl %ecx,%ebx
+ xorl %ecx,%r11d
+ leal 1770035416(%rax,%r10,1),%eax
+ andl %ebx,%r11d
+ xorl %edx,%r11d
+ movl 36(%rsi),%r10d
+ addl %r11d,%eax
+ roll $7,%eax
+ movl %ecx,%r11d
+ addl %ebx,%eax
+ xorl %ebx,%r11d
+ leal 2336552879(%rdx,%r10,1),%edx
+ andl %eax,%r11d
+ xorl %ecx,%r11d
+ movl 40(%rsi),%r10d
+ addl %r11d,%edx
+ roll $12,%edx
+ movl %ebx,%r11d
+ addl %eax,%edx
+ xorl %eax,%r11d
+ leal 4294925233(%rcx,%r10,1),%ecx
+ andl %edx,%r11d
+ xorl %ebx,%r11d
+ movl 44(%rsi),%r10d
+ addl %r11d,%ecx
+ roll $17,%ecx
+ movl %eax,%r11d
+ addl %edx,%ecx
+ xorl %edx,%r11d
+ leal 2304563134(%rbx,%r10,1),%ebx
+ andl %ecx,%r11d
+ xorl %eax,%r11d
+ movl 48(%rsi),%r10d
+ addl %r11d,%ebx
+ roll $22,%ebx
+ movl %edx,%r11d
+ addl %ecx,%ebx
+ xorl %ecx,%r11d
+ leal 1804603682(%rax,%r10,1),%eax
+ andl %ebx,%r11d
+ xorl %edx,%r11d
+ movl 52(%rsi),%r10d
+ addl %r11d,%eax
+ roll $7,%eax
+ movl %ecx,%r11d
+ addl %ebx,%eax
+ xorl %ebx,%r11d
+ leal 4254626195(%rdx,%r10,1),%edx
+ andl %eax,%r11d
+ xorl %ecx,%r11d
+ movl 56(%rsi),%r10d
+ addl %r11d,%edx
+ roll $12,%edx
+ movl %ebx,%r11d
+ addl %eax,%edx
+ xorl %eax,%r11d
+ leal 2792965006(%rcx,%r10,1),%ecx
+ andl %edx,%r11d
+ xorl %ebx,%r11d
+ movl 60(%rsi),%r10d
+ addl %r11d,%ecx
+ roll $17,%ecx
+ movl %eax,%r11d
+ addl %edx,%ecx
+ xorl %edx,%r11d
+ leal 1236535329(%rbx,%r10,1),%ebx
+ andl %ecx,%r11d
+ xorl %eax,%r11d
+ movl 0(%rsi),%r10d
+ addl %r11d,%ebx
+ roll $22,%ebx
+ movl %edx,%r11d
+ addl %ecx,%ebx
+ movl 4(%rsi),%r10d
+ movl %ecx,%r11d
+ xorl %ebx,%r11d
+ leal 4129170786(%rax,%r10,1),%eax
+ andl %edx,%r11d
+ xorl %ecx,%r11d
+ movl 24(%rsi),%r10d
+ addl %r11d,%eax
+ roll $5,%eax
+ movl %ebx,%r11d
+ addl %ebx,%eax
+ xorl %eax,%r11d
+ leal 3225465664(%rdx,%r10,1),%edx
+ andl %ecx,%r11d
+ xorl %ebx,%r11d
+ movl 44(%rsi),%r10d
+ addl %r11d,%edx
+ roll $9,%edx
+ movl %eax,%r11d
+ addl %eax,%edx
+ xorl %edx,%r11d
+ leal 643717713(%rcx,%r10,1),%ecx
+ andl %ebx,%r11d
+ xorl %eax,%r11d
+ movl 0(%rsi),%r10d
+ addl %r11d,%ecx
+ roll $14,%ecx
+ movl %edx,%r11d
+ addl %edx,%ecx
+ xorl %ecx,%r11d
+ leal 3921069994(%rbx,%r10,1),%ebx
+ andl %eax,%r11d
+ xorl %edx,%r11d
+ movl 20(%rsi),%r10d
+ addl %r11d,%ebx
+ roll $20,%ebx
+ movl %ecx,%r11d
+ addl %ecx,%ebx
+ xorl %ebx,%r11d
+ leal 3593408605(%rax,%r10,1),%eax
+ andl %edx,%r11d
+ xorl %ecx,%r11d
+ movl 40(%rsi),%r10d
+ addl %r11d,%eax
+ roll $5,%eax
+ movl %ebx,%r11d
+ addl %ebx,%eax
+ xorl %eax,%r11d
+ leal 38016083(%rdx,%r10,1),%edx
+ andl %ecx,%r11d
+ xorl %ebx,%r11d
+ movl 60(%rsi),%r10d
+ addl %r11d,%edx
+ roll $9,%edx
+ movl %eax,%r11d
+ addl %eax,%edx
+ xorl %edx,%r11d
+ leal 3634488961(%rcx,%r10,1),%ecx
+ andl %ebx,%r11d
+ xorl %eax,%r11d
+ movl 16(%rsi),%r10d
+ addl %r11d,%ecx
+ roll $14,%ecx
+ movl %edx,%r11d
+ addl %edx,%ecx
+ xorl %ecx,%r11d
+ leal 3889429448(%rbx,%r10,1),%ebx
+ andl %eax,%r11d
+ xorl %edx,%r11d
+ movl 36(%rsi),%r10d
+ addl %r11d,%ebx
+ roll $20,%ebx
+ movl %ecx,%r11d
+ addl %ecx,%ebx
+ xorl %ebx,%r11d
+ leal 568446438(%rax,%r10,1),%eax
+ andl %edx,%r11d
+ xorl %ecx,%r11d
+ movl 56(%rsi),%r10d
+ addl %r11d,%eax
+ roll $5,%eax
+ movl %ebx,%r11d
+ addl %ebx,%eax
+ xorl %eax,%r11d
+ leal 3275163606(%rdx,%r10,1),%edx
+ andl %ecx,%r11d
+ xorl %ebx,%r11d
+ movl 12(%rsi),%r10d
+ addl %r11d,%edx
+ roll $9,%edx
+ movl %eax,%r11d
+ addl %eax,%edx
+ xorl %edx,%r11d
+ leal 4107603335(%rcx,%r10,1),%ecx
+ andl %ebx,%r11d
+ xorl %eax,%r11d
+ movl 32(%rsi),%r10d
+ addl %r11d,%ecx
+ roll $14,%ecx
+ movl %edx,%r11d
+ addl %edx,%ecx
+ xorl %ecx,%r11d
+ leal 1163531501(%rbx,%r10,1),%ebx
+ andl %eax,%r11d
+ xorl %edx,%r11d
+ movl 52(%rsi),%r10d
+ addl %r11d,%ebx
+ roll $20,%ebx
+ movl %ecx,%r11d
+ addl %ecx,%ebx
+ xorl %ebx,%r11d
+ leal 2850285829(%rax,%r10,1),%eax
+ andl %edx,%r11d
+ xorl %ecx,%r11d
+ movl 8(%rsi),%r10d
+ addl %r11d,%eax
+ roll $5,%eax
+ movl %ebx,%r11d
+ addl %ebx,%eax
+ xorl %eax,%r11d
+ leal 4243563512(%rdx,%r10,1),%edx
+ andl %ecx,%r11d
+ xorl %ebx,%r11d
+ movl 28(%rsi),%r10d
+ addl %r11d,%edx
+ roll $9,%edx
+ movl %eax,%r11d
+ addl %eax,%edx
+ xorl %edx,%r11d
+ leal 1735328473(%rcx,%r10,1),%ecx
+ andl %ebx,%r11d
+ xorl %eax,%r11d
+ movl 48(%rsi),%r10d
+ addl %r11d,%ecx
+ roll $14,%ecx
+ movl %edx,%r11d
+ addl %edx,%ecx
+ xorl %ecx,%r11d
+ leal 2368359562(%rbx,%r10,1),%ebx
+ andl %eax,%r11d
+ xorl %edx,%r11d
+ movl 0(%rsi),%r10d
+ addl %r11d,%ebx
+ roll $20,%ebx
+ movl %ecx,%r11d
+ addl %ecx,%ebx
+ movl 20(%rsi),%r10d
+ movl %ecx,%r11d
+ leal 4294588738(%rax,%r10,1),%eax
+ movl 32(%rsi),%r10d
+ xorl %edx,%r11d
+ xorl %ebx,%r11d
+ addl %r11d,%eax
+ roll $4,%eax
+ movl %ebx,%r11d
+ addl %ebx,%eax
+ leal 2272392833(%rdx,%r10,1),%edx
+ movl 44(%rsi),%r10d
+ xorl %ecx,%r11d
+ xorl %eax,%r11d
+ addl %r11d,%edx
+ roll $11,%edx
+ movl %eax,%r11d
+ addl %eax,%edx
+ leal 1839030562(%rcx,%r10,1),%ecx
+ movl 56(%rsi),%r10d
+ xorl %ebx,%r11d
+ xorl %edx,%r11d
+ addl %r11d,%ecx
+ roll $16,%ecx
+ movl %edx,%r11d
+ addl %edx,%ecx
+ leal 4259657740(%rbx,%r10,1),%ebx
+ movl 4(%rsi),%r10d
+ xorl %eax,%r11d
+ xorl %ecx,%r11d
+ addl %r11d,%ebx
+ roll $23,%ebx
+ movl %ecx,%r11d
+ addl %ecx,%ebx
+ leal 2763975236(%rax,%r10,1),%eax
+ movl 16(%rsi),%r10d
+ xorl %edx,%r11d
+ xorl %ebx,%r11d
+ addl %r11d,%eax
+ roll $4,%eax
+ movl %ebx,%r11d
+ addl %ebx,%eax
+ leal 1272893353(%rdx,%r10,1),%edx
+ movl 28(%rsi),%r10d
+ xorl %ecx,%r11d
+ xorl %eax,%r11d
+ addl %r11d,%edx
+ roll $11,%edx
+ movl %eax,%r11d
+ addl %eax,%edx
+ leal 4139469664(%rcx,%r10,1),%ecx
+ movl 40(%rsi),%r10d
+ xorl %ebx,%r11d
+ xorl %edx,%r11d
+ addl %r11d,%ecx
+ roll $16,%ecx
+ movl %edx,%r11d
+ addl %edx,%ecx
+ leal 3200236656(%rbx,%r10,1),%ebx
+ movl 52(%rsi),%r10d
+ xorl %eax,%r11d
+ xorl %ecx,%r11d
+ addl %r11d,%ebx
+ roll $23,%ebx
+ movl %ecx,%r11d
+ addl %ecx,%ebx
+ leal 681279174(%rax,%r10,1),%eax
+ movl 0(%rsi),%r10d
+ xorl %edx,%r11d
+ xorl %ebx,%r11d
+ addl %r11d,%eax
+ roll $4,%eax
+ movl %ebx,%r11d
+ addl %ebx,%eax
+ leal 3936430074(%rdx,%r10,1),%edx
+ movl 12(%rsi),%r10d
+ xorl %ecx,%r11d
+ xorl %eax,%r11d
+ addl %r11d,%edx
+ roll $11,%edx
+ movl %eax,%r11d
+ addl %eax,%edx
+ leal 3572445317(%rcx,%r10,1),%ecx
+ movl 24(%rsi),%r10d
+ xorl %ebx,%r11d
+ xorl %edx,%r11d
+ addl %r11d,%ecx
+ roll $16,%ecx
+ movl %edx,%r11d
+ addl %edx,%ecx
+ leal 76029189(%rbx,%r10,1),%ebx
+ movl 36(%rsi),%r10d
+ xorl %eax,%r11d
+ xorl %ecx,%r11d
+ addl %r11d,%ebx
+ roll $23,%ebx
+ movl %ecx,%r11d
+ addl %ecx,%ebx
+ leal 3654602809(%rax,%r10,1),%eax
+ movl 48(%rsi),%r10d
+ xorl %edx,%r11d
+ xorl %ebx,%r11d
+ addl %r11d,%eax
+ roll $4,%eax
+ movl %ebx,%r11d
+ addl %ebx,%eax
+ leal 3873151461(%rdx,%r10,1),%edx
+ movl 60(%rsi),%r10d
+ xorl %ecx,%r11d
+ xorl %eax,%r11d
+ addl %r11d,%edx
+ roll $11,%edx
+ movl %eax,%r11d
+ addl %eax,%edx
+ leal 530742520(%rcx,%r10,1),%ecx
+ movl 8(%rsi),%r10d
+ xorl %ebx,%r11d
+ xorl %edx,%r11d
+ addl %r11d,%ecx
+ roll $16,%ecx
+ movl %edx,%r11d
+ addl %edx,%ecx
+ leal 3299628645(%rbx,%r10,1),%ebx
+ movl 0(%rsi),%r10d
+ xorl %eax,%r11d
+ xorl %ecx,%r11d
+ addl %r11d,%ebx
+ roll $23,%ebx
+ movl %ecx,%r11d
+ addl %ecx,%ebx
+ movl 0(%rsi),%r10d
+ movl $4294967295,%r11d
+ xorl %edx,%r11d
+ leal 4096336452(%rax,%r10,1),%eax
+ orl %ebx,%r11d
+ xorl %ecx,%r11d
+ addl %r11d,%eax
+ movl 28(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $6,%eax
+ xorl %ecx,%r11d
+ addl %ebx,%eax
+ leal 1126891415(%rdx,%r10,1),%edx
+ orl %eax,%r11d
+ xorl %ebx,%r11d
+ addl %r11d,%edx
+ movl 56(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $10,%edx
+ xorl %ebx,%r11d
+ addl %eax,%edx
+ leal 2878612391(%rcx,%r10,1),%ecx
+ orl %edx,%r11d
+ xorl %eax,%r11d
+ addl %r11d,%ecx
+ movl 20(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $15,%ecx
+ xorl %eax,%r11d
+ addl %edx,%ecx
+ leal 4237533241(%rbx,%r10,1),%ebx
+ orl %ecx,%r11d
+ xorl %edx,%r11d
+ addl %r11d,%ebx
+ movl 48(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $21,%ebx
+ xorl %edx,%r11d
+ addl %ecx,%ebx
+ leal 1700485571(%rax,%r10,1),%eax
+ orl %ebx,%r11d
+ xorl %ecx,%r11d
+ addl %r11d,%eax
+ movl 12(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $6,%eax
+ xorl %ecx,%r11d
+ addl %ebx,%eax
+ leal 2399980690(%rdx,%r10,1),%edx
+ orl %eax,%r11d
+ xorl %ebx,%r11d
+ addl %r11d,%edx
+ movl 40(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $10,%edx
+ xorl %ebx,%r11d
+ addl %eax,%edx
+ leal 4293915773(%rcx,%r10,1),%ecx
+ orl %edx,%r11d
+ xorl %eax,%r11d
+ addl %r11d,%ecx
+ movl 4(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $15,%ecx
+ xorl %eax,%r11d
+ addl %edx,%ecx
+ leal 2240044497(%rbx,%r10,1),%ebx
+ orl %ecx,%r11d
+ xorl %edx,%r11d
+ addl %r11d,%ebx
+ movl 32(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $21,%ebx
+ xorl %edx,%r11d
+ addl %ecx,%ebx
+ leal 1873313359(%rax,%r10,1),%eax
+ orl %ebx,%r11d
+ xorl %ecx,%r11d
+ addl %r11d,%eax
+ movl 60(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $6,%eax
+ xorl %ecx,%r11d
+ addl %ebx,%eax
+ leal 4264355552(%rdx,%r10,1),%edx
+ orl %eax,%r11d
+ xorl %ebx,%r11d
+ addl %r11d,%edx
+ movl 24(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $10,%edx
+ xorl %ebx,%r11d
+ addl %eax,%edx
+ leal 2734768916(%rcx,%r10,1),%ecx
+ orl %edx,%r11d
+ xorl %eax,%r11d
+ addl %r11d,%ecx
+ movl 52(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $15,%ecx
+ xorl %eax,%r11d
+ addl %edx,%ecx
+ leal 1309151649(%rbx,%r10,1),%ebx
+ orl %ecx,%r11d
+ xorl %edx,%r11d
+ addl %r11d,%ebx
+ movl 16(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $21,%ebx
+ xorl %edx,%r11d
+ addl %ecx,%ebx
+ leal 4149444226(%rax,%r10,1),%eax
+ orl %ebx,%r11d
+ xorl %ecx,%r11d
+ addl %r11d,%eax
+ movl 44(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $6,%eax
+ xorl %ecx,%r11d
+ addl %ebx,%eax
+ leal 3174756917(%rdx,%r10,1),%edx
+ orl %eax,%r11d
+ xorl %ebx,%r11d
+ addl %r11d,%edx
+ movl 8(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $10,%edx
+ xorl %ebx,%r11d
+ addl %eax,%edx
+ leal 718787259(%rcx,%r10,1),%ecx
+ orl %edx,%r11d
+ xorl %eax,%r11d
+ addl %r11d,%ecx
+ movl 36(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $15,%ecx
+ xorl %eax,%r11d
+ addl %edx,%ecx
+ leal 3951481745(%rbx,%r10,1),%ebx
+ orl %ecx,%r11d
+ xorl %edx,%r11d
+ addl %r11d,%ebx
+ movl 0(%rsi),%r10d
+ movl $4294967295,%r11d
+ roll $21,%ebx
+ xorl %edx,%r11d
+ addl %ecx,%ebx
+
+ addl %r8d,%eax
+ addl %r9d,%ebx
+ addl %r14d,%ecx
+ addl %r15d,%edx
+
+
+ addq $64,%rsi
+ cmpq %rdi,%rsi
+ jb .Lloop
+
+
+.Lend:
+ movl %eax,0(%rbp)
+ movl %ebx,4(%rbp)
+ movl %ecx,8(%rbp)
+ movl %edx,12(%rbp)
+
+ popq %r15
+ popq %r14
+ popq %rbx
+ popq %rbp
+ .byte 0xf3,0xc3
+.size md5_block_asm_data_order,.-md5_block_asm_data_order

View file

@ -2,6 +2,10 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="2"
inherit eutils
MY_P="${PN}-v${PV}"
DESCRIPTION="A tool to crack md5 hashes by bruteforce or dictionary attack"
HOMEPAGE="http://www.edge-security.com/edge-soft.php"
@ -12,11 +16,17 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND="dev-lang/nasm"
DEPEND="x86? ( dev-lang/nasm )"
RDEPEND=""
S="${WORKDIR}"/"${MY_P}"
src_prepare() {
if use amd64
then
epatch "${FILESDIR}"/md5bf-x86_64.patch
fi
}
src_compile() {
sed -i -e "s:gcc:gcc ${CFLAGS}:" Makefile
emake -j1 || die "emake failed"