Export separate init, update and finalize hash functions.
git-svn-id: svn://kolibrios.org@6465 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,154 +1,153 @@
|
||||
use32
|
||||
org 0x0
|
||||
db 'MENUET01'
|
||||
dd 0x01,start,i_end,e_end,e_end,0,this_file_name
|
||||
|
||||
include '../../../../proc32.inc'
|
||||
include '../../../../macros.inc'
|
||||
include '../../../../dll.inc'
|
||||
;include '../../../../debug.inc'
|
||||
include 'libcrash.inc'
|
||||
|
||||
BUFFER_SIZE = 4096
|
||||
|
||||
|
||||
start:
|
||||
pushfd
|
||||
pop eax
|
||||
or eax, 1 SHL 18 ; Alignment Check flag
|
||||
push eax
|
||||
popfd
|
||||
|
||||
mcall 68, 11
|
||||
|
||||
stdcall dll.Load, @IMPORT
|
||||
or eax, eax
|
||||
jnz quit
|
||||
|
||||
still:
|
||||
mcall 10
|
||||
dec eax
|
||||
jz redraw
|
||||
dec eax
|
||||
jz key
|
||||
|
||||
button:
|
||||
mcall 17
|
||||
shr eax, 8
|
||||
|
||||
cmp eax, 1
|
||||
je quit
|
||||
|
||||
redraw:
|
||||
mcall 12, 1
|
||||
mcall 0, <0,900>, <0,160>, 0x34000000, 0x80000000, window_title
|
||||
|
||||
|
||||
mcall 4, < 0, 0>, 0xc0ffffff, message, , 0
|
||||
|
||||
mov [hid], 0
|
||||
mov [text_pos_y], 10
|
||||
mov [hash_name], hash_strings
|
||||
.next_hash:
|
||||
mov dword[f70_buf + 4], 0
|
||||
mov dword[msglen], 0
|
||||
mov edi, hex
|
||||
xor eax, eax
|
||||
mov ecx, 1024/4
|
||||
rep stosd
|
||||
invoke crash.hash, [hid], data_buffer, update_data_buffer, ctx
|
||||
invoke crash.bin2hex, ctx, hex, [hid]
|
||||
mov ebx, [text_pos_y]
|
||||
mcall 4, , 0xc0ffffff, [hash_name], , 0
|
||||
mov ebx, [text_pos_y]
|
||||
add ebx, 66 SHL 16
|
||||
mcall 4, , 0x40ffffff, hex, 128, 0
|
||||
add [text_pos_y], 10
|
||||
add [hash_name], 12 ; lenght of hash_strings item
|
||||
inc [hid]
|
||||
cmp [hid], LIBCRASH_SHA3_512
|
||||
jng .next_hash
|
||||
|
||||
mcall 12, 2
|
||||
jmp still
|
||||
|
||||
key:
|
||||
mcall 2
|
||||
jmp still
|
||||
|
||||
|
||||
quit:
|
||||
mcall -1
|
||||
|
||||
|
||||
proc update_data_buffer _left
|
||||
mov eax, data_buffer
|
||||
add eax, [_left]
|
||||
mov dword[f70_buf + 16], eax
|
||||
mov eax, BUFFER_SIZE
|
||||
sub eax, [_left]
|
||||
mov dword[f70_buf + 12], eax
|
||||
mcall 70, f70_buf
|
||||
mov eax, ebx
|
||||
cmp eax, -1
|
||||
jne @f
|
||||
inc eax
|
||||
@@:
|
||||
add dword[f70_buf + 4], eax
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
szZ window_title ,'libcrash example'
|
||||
|
||||
szZ message , 'hash sums of this file'
|
||||
|
||||
hash_strings:
|
||||
db 'crc32 : ',0
|
||||
db 'md4 : ',0
|
||||
db 'md5 : ',0
|
||||
db 'sha1 : ',0
|
||||
db 'sha224 : ',0
|
||||
db 'sha256 : ',0
|
||||
db 'sha384 : ',0
|
||||
db 'sha512 : ',0
|
||||
db 'sha3-224 : ',0
|
||||
db 'sha3-256 : ',0
|
||||
db 'sha3-384 : ',0
|
||||
db 'sha3-512 : ',0
|
||||
|
||||
f70_buf:
|
||||
funcnum dd 0
|
||||
src dd 0
|
||||
res1 dd 0
|
||||
count dd BUFFER_SIZE
|
||||
dst dd data_buffer
|
||||
res2 db 0
|
||||
fname dd this_file_name
|
||||
|
||||
|
||||
align 4
|
||||
@IMPORT:
|
||||
|
||||
library \
|
||||
libcrash, 'libcrash.obj'
|
||||
|
||||
import libcrash , \
|
||||
libcrash.init , 'lib_init' , \
|
||||
crash.hash , 'crash_hash' , \
|
||||
crash.bin2hex , 'crash_bin2hex'
|
||||
|
||||
i_end:
|
||||
hash_name rd 1
|
||||
text_pos_y rd 1
|
||||
hash rd 50
|
||||
hid rd 1 ; hash id
|
||||
msglen rd 1
|
||||
hex rb 1024
|
||||
data_buffer rb BUFFER_SIZE
|
||||
this_file_name rb 4096
|
||||
rb 0x800 ;stack
|
||||
align 16 ; should be enough
|
||||
ctx rb 0x1000
|
||||
e_end:
|
||||
|
||||
use32
|
||||
org 0x0
|
||||
db 'MENUET01'
|
||||
dd 0x01,start,i_end,e_end,e_end,0,this_file_name
|
||||
|
||||
include '../../../../proc32.inc'
|
||||
include '../../../../macros.inc'
|
||||
include '../../../../dll.inc'
|
||||
;include '../../../../debug.inc'
|
||||
include 'libcrash.inc'
|
||||
|
||||
BUFFER_SIZE = 4096
|
||||
|
||||
|
||||
start:
|
||||
pushfd
|
||||
pop eax
|
||||
or eax, 1 SHL 18 ; Alignment Check flag
|
||||
push eax
|
||||
popfd
|
||||
|
||||
mcall 68, 11
|
||||
|
||||
stdcall dll.Load, @IMPORT
|
||||
or eax, eax
|
||||
jnz quit
|
||||
|
||||
still:
|
||||
mcall 10
|
||||
dec eax
|
||||
jz redraw
|
||||
dec eax
|
||||
jz key
|
||||
|
||||
button:
|
||||
mcall 17
|
||||
shr eax, 8
|
||||
|
||||
cmp eax, 1
|
||||
je quit
|
||||
|
||||
redraw:
|
||||
mcall 12, 1
|
||||
mcall 0, <0,900>, <0,160>, 0x34000000, 0x80000000, window_title
|
||||
|
||||
|
||||
mcall 4, < 0, 0>, 0xc0ffffff, message, , 0
|
||||
|
||||
mov [hid], 0
|
||||
mov [text_pos_y], 10
|
||||
mov [hash_name], hash_strings
|
||||
.next_hash:
|
||||
mov dword[f70_buf + 4], 0
|
||||
mov dword[msglen], 0
|
||||
mov edi, hex
|
||||
xor eax, eax
|
||||
mov ecx, 1024/4
|
||||
rep stosd
|
||||
invoke crash.hash, [hid], data_buffer, update_data_buffer, ctx
|
||||
invoke crash.bin2hex, ctx, hex, [hid]
|
||||
mov ebx, [text_pos_y]
|
||||
mcall 4, , 0xc0ffffff, [hash_name], , 0
|
||||
mov ebx, [text_pos_y]
|
||||
add ebx, 66 SHL 16
|
||||
mcall 4, , 0x40ffffff, hex, 128, 0
|
||||
add [text_pos_y], 10
|
||||
add [hash_name], 12 ; lenght of hash_strings item
|
||||
inc [hid]
|
||||
cmp [hid], LIBCRASH_SHA3_512
|
||||
jng .next_hash
|
||||
|
||||
mcall 12, 2
|
||||
jmp still
|
||||
|
||||
key:
|
||||
mcall 2
|
||||
jmp still
|
||||
|
||||
|
||||
quit:
|
||||
mcall -1
|
||||
|
||||
|
||||
proc update_data_buffer _left
|
||||
mov eax, data_buffer
|
||||
add eax, [_left]
|
||||
mov dword[f70_buf + 16], eax
|
||||
mov eax, BUFFER_SIZE
|
||||
sub eax, [_left]
|
||||
mov dword[f70_buf + 12], eax
|
||||
mcall 70, f70_buf
|
||||
mov eax, ebx
|
||||
cmp eax, -1
|
||||
jne @f
|
||||
inc eax
|
||||
@@:
|
||||
add dword[f70_buf + 4], eax
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
szZ window_title , 'libcrash example'
|
||||
szZ message , 'hash sums of this file'
|
||||
|
||||
hash_strings:
|
||||
db 'crc32 : ',0
|
||||
db 'md4 : ',0
|
||||
db 'md5 : ',0
|
||||
db 'sha1 : ',0
|
||||
db 'sha224 : ',0
|
||||
db 'sha256 : ',0
|
||||
db 'sha384 : ',0
|
||||
db 'sha512 : ',0
|
||||
db 'sha3-224 : ',0
|
||||
db 'sha3-256 : ',0
|
||||
db 'sha3-384 : ',0
|
||||
db 'sha3-512 : ',0
|
||||
|
||||
f70_buf:
|
||||
funcnum dd 0
|
||||
src dd 0
|
||||
res1 dd 0
|
||||
count dd BUFFER_SIZE
|
||||
dst dd data_buffer
|
||||
res2 db 0
|
||||
fname dd this_file_name
|
||||
|
||||
|
||||
align 4
|
||||
@IMPORT:
|
||||
|
||||
library \
|
||||
libcrash, 'libcrash.obj'
|
||||
|
||||
import libcrash , \
|
||||
libcrash.init , 'lib_init' , \
|
||||
crash.hash , 'crash_hash' , \
|
||||
crash.bin2hex , 'crash_bin2hex'
|
||||
|
||||
i_end:
|
||||
hash_name rd 1
|
||||
text_pos_y rd 1
|
||||
hash rd 50
|
||||
hid rd 1 ; hash id
|
||||
msglen rd 1
|
||||
hex rb 1024
|
||||
data_buffer rb BUFFER_SIZE
|
||||
this_file_name rb 4096
|
||||
rb 0x800 ;stack
|
||||
align 16 ; should be enough
|
||||
ctx rb 0x1000
|
||||
e_end:
|
||||
|
||||
|
Reference in New Issue
Block a user