mirror of
https://github.com/stasenso/SHA256.git
synced 2026-06-26 21:32:43 +03:00
Fix SHA-256 DLL stability issues and return code
This commit is contained in:
+5
-1
@@ -6,5 +6,9 @@ sha-256.obj
|
||||
sha-256.dll
|
||||
sha-256.lib
|
||||
sha-256.exp
|
||||
tmp_smoke_sha/*
|
||||
tmp_verify_sha/*
|
||||
*.h
|
||||
*.tmp
|
||||
*.c
|
||||
|
||||
sha-256.dll
|
||||
|
||||
+11
-7
@@ -140,9 +140,9 @@ Sha256 proc CF_Addr:QWORD,CF_FullSize:QWORD,CF_CurrSize:QWORD,CF_digests:QWORD,C
|
||||
movdqu myXMMSAVE+128,XMM14
|
||||
movdqu myXMMSAVE+144,XMM15
|
||||
mov myRnSAVE,r12
|
||||
mov myRnSAVE+4,r13
|
||||
mov myRnSAVE+8,r14
|
||||
mov myRnSAVE+12,r15
|
||||
mov myRnSAVE+8,r13
|
||||
mov myRnSAVE+16,r14
|
||||
mov myRnSAVE+24,r15
|
||||
;если хэш по предложенному адресу = 0, запускаем Sha256Init
|
||||
mov rax,qword ptr [r9]
|
||||
add r9,8
|
||||
@@ -190,6 +190,8 @@ Sha256 proc CF_Addr:QWORD,CF_FullSize:QWORD,CF_CurrSize:QWORD,CF_digests:QWORD,C
|
||||
mov lastblocksize,1 ;сообщаю, что произойдёт переполнение и блока будет 2 (1024 бита)
|
||||
endingofsegment1: ;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
lea rcx,lastblock ;rcx - указатель ┃
|
||||
test rdx,rdx
|
||||
jz end_endingofsegment2
|
||||
endingofsegment2: ; ┃
|
||||
mov bl,[rax] ; перебрасываю хвост в локальную область ┃
|
||||
mov [rcx],bl ; оптимизировать!!! наверняка - жуткий тормоз!!! ┃
|
||||
@@ -197,6 +199,7 @@ Sha256 proc CF_Addr:QWORD,CF_FullSize:QWORD,CF_CurrSize:QWORD,CF_digests:QWORD,C
|
||||
inc rcx ; ┃
|
||||
dec rdx ; ┃
|
||||
jnz endingofsegment2;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
end_endingofsegment2:
|
||||
mov BYTE ptr [rcx],128 ;дописываю 1 и 7 бит
|
||||
mov edx,endingOfSegment
|
||||
inc rdx ;в rdx - длинна хвоста + 8 бит
|
||||
@@ -314,9 +317,10 @@ Sha256 proc CF_Addr:QWORD,CF_FullSize:QWORD,CF_CurrSize:QWORD,CF_digests:QWORD,C
|
||||
movdqu XMM14,myXMMSAVE+128
|
||||
movdqu XMM15,myXMMSAVE+144
|
||||
mov R12,myRnSAVE
|
||||
mov R13,myRnSAVE+4
|
||||
mov R14,myRnSAVE+8
|
||||
mov R15,myRnSAVE+12
|
||||
mov R13,myRnSAVE+8
|
||||
mov R14,myRnSAVE+16
|
||||
mov R15,myRnSAVE+24
|
||||
xor eax,eax ; NULL (0) = success
|
||||
ret
|
||||
Sha256 Endp
|
||||
;Инициализация хэш функции, ввод исходных значений
|
||||
@@ -6945,4 +6949,4 @@ CompCycle proc; Цикл сжатия. Вынес в отдельную проц
|
||||
or r12,r11 ;A=T1+T2
|
||||
ret
|
||||
CompCycle Endp
|
||||
end
|
||||
end
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Reference in New Issue
Block a user