mirror of
https://github.com/stasenso/SHA256.git
synced 2026-06-26 21:32:43 +03:00
Закончил Рассчёт Wt
This commit is contained in:
+42
-37
@@ -242,7 +242,7 @@ Sha256 proc CF_Addr:QWORD,CF_FullSize:QWORD,CF_CurrSize:QWORD,CF_digests:QWORD,C
|
|||||||
movdqu XMM1,XMMWORD PTR [rax+16]
|
movdqu XMM1,XMMWORD PTR [rax+16]
|
||||||
movdqu XMM2,XMMWORD PTR [rax+32]
|
movdqu XMM2,XMMWORD PTR [rax+32]
|
||||||
movdqu XMM3,XMMWORD PTR [rax+48]
|
movdqu XMM3,XMMWORD PTR [rax+48]
|
||||||
call Wt
|
call Wt ;
|
||||||
ret
|
ret
|
||||||
Sha256 Endp
|
Sha256 Endp
|
||||||
;Инициализация хэш функции, ввод исходных значений
|
;Инициализация хэш функции, ввод исходных значений
|
||||||
@@ -1934,9 +1934,9 @@ Wt proc; вынес в отдельную процедуру заполнени
|
|||||||
rol eax,15
|
rol eax,15
|
||||||
and eax,1fffffffh
|
and eax,1fffffffh
|
||||||
xor ecx,eax ; S0
|
xor ecx,eax ; S0
|
||||||
pshufd xmm113,xmm113,00111001b ;-2.
|
pshufd xmm13,xmm13,00111001b ;-2.
|
||||||
xor rbx,rbx ;в ebx будет xor трёх вращений
|
xor rbx,rbx ;в ebx будет xor трёх вращений
|
||||||
movd eax,XMM113
|
movd eax,XMM13
|
||||||
;bswap eax
|
;bswap eax
|
||||||
ror eax,17
|
ror eax,17
|
||||||
xor ebx,eax
|
xor ebx,eax
|
||||||
@@ -2073,10 +2073,12 @@ Wt proc; вынес в отдельную процедуру заполнени
|
|||||||
;pshufd xmm15,xmm15,11100100b ;-0 (Rec)
|
;pshufd xmm15,xmm15,11100100b ;-0 (Rec)
|
||||||
;bswap edx
|
;bswap edx
|
||||||
movd xmm15,edx
|
movd xmm15,edx
|
||||||
;W61---------начать с этого. Нужно заполнить XMM15------------------------------------------------------------------
|
;W61---------начать с этого. Нужно заполнить XMM15z\------------------------------------------------------------------
|
||||||
|
sub rsp,16
|
||||||
|
movdqu [rsp],xmm0; сохраняю в стеке XMM0, чтобы он заменил XMM15
|
||||||
xor rcx,rcx ;в ecx будет xor трёх вращений
|
xor rcx,rcx ;в ecx будет xor трёх вращений
|
||||||
pshufd xmm7,xmm7,01001110b ;-15.
|
pshufd xmm11,xmm11,01001110b ;-15.
|
||||||
movd eax,xmm7
|
movd eax,xmm11
|
||||||
;bswap eax
|
;bswap eax
|
||||||
ror eax,7
|
ror eax,7
|
||||||
xor ecx,eax
|
xor ecx,eax
|
||||||
@@ -2085,9 +2087,9 @@ Wt proc; вынес в отдельную процедуру заполнени
|
|||||||
rol eax,15
|
rol eax,15
|
||||||
and eax,1fffffffh
|
and eax,1fffffffh
|
||||||
xor ecx,eax ; S0
|
xor ecx,eax ; S0
|
||||||
pshufd xmm10,xmm10,00111001b ;-2.
|
pshufd xmm14,xmm14,00111001b ;-2.
|
||||||
xor rbx,rbx ;в ebx будет xor трёх вращений
|
xor rbx,rbx ;в ebx будет xor трёх вращений
|
||||||
movd eax,XMM10
|
movd eax,XMM14
|
||||||
;bswap eax
|
;bswap eax
|
||||||
ror eax,17
|
ror eax,17
|
||||||
xor ebx,eax
|
xor ebx,eax
|
||||||
@@ -2096,25 +2098,26 @@ Wt proc; вынес в отдельную процедуру заполнени
|
|||||||
rol eax,9
|
rol eax,9
|
||||||
and eax,3fffffh
|
and eax,3fffffh
|
||||||
xor ebx,eax ;S1
|
xor ebx,eax ;S1
|
||||||
pshufd xmm7,xmm7,10010011b ;-16.
|
pshufd xmm11,xmm11,10010011b ;-16.
|
||||||
xor rdx,rdx
|
xor rdx,rdx
|
||||||
movd eax,xmm7
|
movd eax,xmm11
|
||||||
;bswap eax
|
;bswap eax
|
||||||
add edx,eax
|
add edx,eax
|
||||||
add edx,ecx
|
add edx,ecx
|
||||||
pshufd XMM9,XMM9,00111001b ;-7.
|
pshufd XMM13,XMM13,00111001b ;-7.
|
||||||
movd eax,XMM9
|
movd eax,XMM13
|
||||||
;bswap eax
|
;bswap eax
|
||||||
add edx,eax
|
add edx,eax
|
||||||
add edx,ebx ;w[i]=w[i-16]+s0+w[i-7]+s1
|
add edx,ebx ;w[i]=w[i-16]+s0+w[i-7]+s1
|
||||||
pshufd xmm11,xmm11,00111001b ;-0 (Rec)
|
pshufd xmm15,xmm15,00111001b ;-0 (Rec)
|
||||||
;bswap edx
|
;bswap edx
|
||||||
movd xmm15,edx
|
movd xmm0,edx
|
||||||
orpd xmm11,xmm15
|
orpd xmm15,xmm0
|
||||||
|
|
||||||
;W62---------------------------------------------------------------------------
|
;W62---------------------------------------------------------------------------
|
||||||
xor rcx,rcx ;в ecx будет xor трёх вращений
|
xor rcx,rcx ;в ecx будет xor трёх вращений
|
||||||
pshufd xmm7,xmm7,01001110b ;-15.
|
pshufd xmm11,xmm11,01001110b ;-15.
|
||||||
movd eax,xmm7
|
movd eax,xmm11
|
||||||
;bswap eax
|
;bswap eax
|
||||||
ror eax,7
|
ror eax,7
|
||||||
xor ecx,eax
|
xor ecx,eax
|
||||||
@@ -2123,9 +2126,9 @@ Wt proc; вынес в отдельную процедуру заполнени
|
|||||||
rol eax,15
|
rol eax,15
|
||||||
and eax,1fffffffh
|
and eax,1fffffffh
|
||||||
xor ecx,eax ; S0
|
xor ecx,eax ; S0
|
||||||
pshufd xmm11,xmm11,10010011b ;-2.
|
pshufd xmm15,xmm15,10010011b ;-2.
|
||||||
xor rbx,rbx ;в ebx будет xor трёх вращений
|
xor rbx,rbx ;в ebx будет xor трёх вращений
|
||||||
movd eax,XMM11
|
movd eax,XMM15
|
||||||
;bswap eax
|
;bswap eax
|
||||||
ror eax,17
|
ror eax,17
|
||||||
xor ebx,eax
|
xor ebx,eax
|
||||||
@@ -2134,25 +2137,25 @@ Wt proc; вынес в отдельную процедуру заполнени
|
|||||||
rol eax,9
|
rol eax,9
|
||||||
and eax,3fffffh
|
and eax,3fffffh
|
||||||
xor ebx,eax ;S1
|
xor ebx,eax ;S1
|
||||||
pshufd xmm7,xmm7,10010011b ;-16.
|
pshufd xmm11,xmm11,10010011b ;-16.
|
||||||
xor rdx,rdx
|
xor rdx,rdx
|
||||||
movd eax,xmm7
|
movd eax,xmm11
|
||||||
;bswap eax
|
;bswap eax
|
||||||
add edx,eax
|
add edx,eax
|
||||||
add edx,ecx
|
add edx,ecx
|
||||||
pshufd XMM9,XMM9,00111001b ;-7.
|
pshufd XMM13,XMM13,00111001b ;-7.
|
||||||
movd eax,XMM9
|
movd eax,XMM13
|
||||||
;bswap eax
|
;bswap eax
|
||||||
add edx,eax
|
add edx,eax
|
||||||
add edx,ebx ;w[i]=w[i-16]+s0+w[i-7]+s1
|
add edx,ebx ;w[i]=w[i-16]+s0+w[i-7]+s1
|
||||||
pshufd xmm11,xmm11,01001110b ;-0 (Rec)
|
pshufd xmm15,xmm15,01001110b ;-0 (Rec)
|
||||||
;bswap edx
|
;bswap edx
|
||||||
movd xmm15,edx
|
movd xmm0,edx
|
||||||
orpd xmm11,xmm15
|
orpd xmm15,xmm0
|
||||||
;W63---------------------------------------------------------------------------
|
;W63---------------------------------------------------------------------------
|
||||||
xor rcx,rcx ;в ecx будет xor трёх вращений
|
xor rcx,rcx ;в ecx будет xor трёх вращений
|
||||||
pshufd xmm8,xmm8,00111001b ;-15.
|
pshufd xmm12,xmm12,00111001b ;-15.
|
||||||
movd eax,xmm8
|
movd eax,xmm12
|
||||||
;bswap eax
|
;bswap eax
|
||||||
ror eax,7
|
ror eax,7
|
||||||
xor ecx,eax
|
xor ecx,eax
|
||||||
@@ -2161,9 +2164,9 @@ Wt proc; вынес в отдельную процедуру заполнени
|
|||||||
rol eax,15
|
rol eax,15
|
||||||
and eax,1fffffffh
|
and eax,1fffffffh
|
||||||
xor ecx,eax ; S0
|
xor ecx,eax ; S0
|
||||||
pshufd xmm11,xmm11,10010011b ;-2.
|
pshufd xmm15,xmm15,10010011b ;-2.
|
||||||
xor rbx,rbx ;в ebx будет xor трёх вращений
|
xor rbx,rbx ;в ebx будет xor трёх вращений
|
||||||
movd eax,XMM11
|
movd eax,XMM15
|
||||||
;bswap eax
|
;bswap eax
|
||||||
ror eax,17
|
ror eax,17
|
||||||
xor ebx,eax
|
xor ebx,eax
|
||||||
@@ -2172,21 +2175,23 @@ Wt proc; вынес в отдельную процедуру заполнени
|
|||||||
rol eax,9
|
rol eax,9
|
||||||
and eax,3fffffh
|
and eax,3fffffh
|
||||||
xor ebx,eax ;S1
|
xor ebx,eax ;S1
|
||||||
pshufd xmm7,xmm7,00111001b ;-16.
|
pshufd xmm11,xmm11,00111001b ;-16.
|
||||||
xor rdx,rdx
|
xor rdx,rdx
|
||||||
movd eax,xmm7
|
movd eax,xmm11
|
||||||
;bswap eax
|
;bswap eax
|
||||||
add edx,eax
|
add edx,eax
|
||||||
add edx,ecx
|
add edx,ecx
|
||||||
pshufd XMM10,XMM10,00111001b ;-7.
|
pshufd XMM14,XMM14,00111001b ;-7.
|
||||||
movd eax,XMM10
|
movd eax,XMM14
|
||||||
;bswap eax
|
;bswap eax
|
||||||
add edx,eax
|
add edx,eax
|
||||||
add edx,ebx ;w[i]=w[i-16]+s0+w[i-7]+s1
|
add edx,ebx ;w[i]=w[i-16]+s0+w[i-7]+s1
|
||||||
pshufd xmm11,xmm11,01001110b ;-0 (Rec)
|
pshufd xmm15,xmm15,01001110b ;-0 (Rec)
|
||||||
;bswap edx
|
;bswap edx
|
||||||
movd xmm15,edx
|
movd XMM0,edx
|
||||||
orpd xmm11,xmm15
|
orpd xmm15,xmm0
|
||||||
|
movdqu XMM0,[rsp]
|
||||||
|
add rsp,16
|
||||||
ret
|
ret
|
||||||
Wt Endp
|
Wt Endp
|
||||||
end
|
end
|
||||||
BIN
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user