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.dll
|
||||||
sha-256.lib
|
sha-256.lib
|
||||||
sha-256.exp
|
sha-256.exp
|
||||||
|
tmp_smoke_sha/*
|
||||||
|
tmp_verify_sha/*
|
||||||
|
*.h
|
||||||
|
*.tmp
|
||||||
|
*.c
|
||||||
|
|
||||||
sha-256.dll
|
|
||||||
|
|||||||
+10
-6
@@ -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+128,XMM14
|
||||||
movdqu myXMMSAVE+144,XMM15
|
movdqu myXMMSAVE+144,XMM15
|
||||||
mov myRnSAVE,r12
|
mov myRnSAVE,r12
|
||||||
mov myRnSAVE+4,r13
|
mov myRnSAVE+8,r13
|
||||||
mov myRnSAVE+8,r14
|
mov myRnSAVE+16,r14
|
||||||
mov myRnSAVE+12,r15
|
mov myRnSAVE+24,r15
|
||||||
;если хэш по предложенному адресу = 0, запускаем Sha256Init
|
;если хэш по предложенному адресу = 0, запускаем Sha256Init
|
||||||
mov rax,qword ptr [r9]
|
mov rax,qword ptr [r9]
|
||||||
add r9,8
|
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 бита)
|
mov lastblocksize,1 ;сообщаю, что произойдёт переполнение и блока будет 2 (1024 бита)
|
||||||
endingofsegment1: ;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
endingofsegment1: ;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||||
lea rcx,lastblock ;rcx - указатель ┃
|
lea rcx,lastblock ;rcx - указатель ┃
|
||||||
|
test rdx,rdx
|
||||||
|
jz end_endingofsegment2
|
||||||
endingofsegment2: ; ┃
|
endingofsegment2: ; ┃
|
||||||
mov bl,[rax] ; перебрасываю хвост в локальную область ┃
|
mov bl,[rax] ; перебрасываю хвост в локальную область ┃
|
||||||
mov [rcx],bl ; оптимизировать!!! наверняка - жуткий тормоз!!! ┃
|
mov [rcx],bl ; оптимизировать!!! наверняка - жуткий тормоз!!! ┃
|
||||||
@@ -197,6 +199,7 @@ Sha256 proc CF_Addr:QWORD,CF_FullSize:QWORD,CF_CurrSize:QWORD,CF_digests:QWORD,C
|
|||||||
inc rcx ; ┃
|
inc rcx ; ┃
|
||||||
dec rdx ; ┃
|
dec rdx ; ┃
|
||||||
jnz endingofsegment2;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
jnz endingofsegment2;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||||
|
end_endingofsegment2:
|
||||||
mov BYTE ptr [rcx],128 ;дописываю 1 и 7 бит
|
mov BYTE ptr [rcx],128 ;дописываю 1 и 7 бит
|
||||||
mov edx,endingOfSegment
|
mov edx,endingOfSegment
|
||||||
inc rdx ;в rdx - длинна хвоста + 8 бит
|
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 XMM14,myXMMSAVE+128
|
||||||
movdqu XMM15,myXMMSAVE+144
|
movdqu XMM15,myXMMSAVE+144
|
||||||
mov R12,myRnSAVE
|
mov R12,myRnSAVE
|
||||||
mov R13,myRnSAVE+4
|
mov R13,myRnSAVE+8
|
||||||
mov R14,myRnSAVE+8
|
mov R14,myRnSAVE+16
|
||||||
mov R15,myRnSAVE+12
|
mov R15,myRnSAVE+24
|
||||||
|
xor eax,eax ; NULL (0) = success
|
||||||
ret
|
ret
|
||||||
Sha256 Endp
|
Sha256 Endp
|
||||||
;Инициализация хэш функции, ввод исходных значений
|
;Инициализация хэш функции, ввод исходных значений
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Reference in New Issue
Block a user