Avoid w@ and w! collision.
This commit is contained in:
@ -21,8 +21,8 @@ internals vocabulary hashing hashing definitions
|
|||||||
0 VALUE temp1 0 VALUE temp2
|
0 VALUE temp1 0 VALUE temp2
|
||||||
|
|
||||||
CREATE w 80 4* ALLOT
|
CREATE w 80 4* ALLOT
|
||||||
: w@ ( n -- n ) 4* w + UL@ ;
|
: @w ( n -- n ) 4* w + UL@ ;
|
||||||
: w! ( n n -- ) 4* w + L! ;
|
: !w ( n n -- ) 4* w + L! ;
|
||||||
|
|
||||||
: 32-bit ( n -- n ) $ffffffff AND ;
|
: 32-bit ( n -- n ) $ffffffff AND ;
|
||||||
: L+ ( n n -- n ) + 32-bit ;
|
: L+ ( n n -- n ) + 32-bit ;
|
||||||
|
|||||||
@ -21,10 +21,10 @@ internals hashing definitions
|
|||||||
|
|
||||||
: extend
|
: extend
|
||||||
80 16 DO
|
80 16 DO
|
||||||
I 3 - w@ I 8 - w@ XOR I 14 - w@ XOR I 16 - w@ XOR 1 <<< I w!
|
I 3 - @w I 8 - @w XOR I 14 - @w XOR I 16 - @w XOR 1 <<< I !w
|
||||||
LOOP
|
LOOP
|
||||||
;
|
;
|
||||||
: step ( n i -- ) w@ + a 5 <<< + e L+ ( to temp )
|
: step ( n i -- ) @w + a 5 <<< + e L+ ( to temp )
|
||||||
d TO e c TO d b 30 <<< TO c a TO b ( from temp ) TO a ;
|
d TO e c TO d b 30 <<< TO c a TO b ( from temp ) TO a ;
|
||||||
: start h0 TO A h1 TO b h2 TO c h3 TO d h4 TO e ;
|
: start h0 TO A h1 TO b h2 TO c h3 TO d h4 TO e ;
|
||||||
: chunk1 20 0 DO b c AND b INVERT d AND XOR $5A827999 + I step LOOP ;
|
: chunk1 20 0 DO b c AND b INVERT d AND XOR $5A827999 + I step LOOP ;
|
||||||
@ -53,8 +53,8 @@ create sha1-hash sha1-size allot
|
|||||||
msg edge >w
|
msg edge >w
|
||||||
edge 56 >= IF chunk w 64 ERASE THEN
|
edge 56 >= IF chunk w 64 ERASE THEN
|
||||||
THEN
|
THEN
|
||||||
n 8 * 16 RSHIFT 16 RSHIFT 14 w!
|
n 8 * 16 RSHIFT 16 RSHIFT 14 !w
|
||||||
n 8 * 15 w! chunk
|
n 8 * 15 !w chunk
|
||||||
format sha1-hash sha1-size
|
format sha1-hash sha1-size
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -37,7 +37,7 @@ DECIMAL
|
|||||||
: s1 { x } x 17 >>> x 19 >>> XOR x 10 RSHIFT XOR ;
|
: s1 { x } x 17 >>> x 19 >>> XOR x 10 RSHIFT XOR ;
|
||||||
: extend
|
: extend
|
||||||
64 16 DO
|
64 16 DO
|
||||||
I 16 - w@ I 7 - w@ + I 15 - w@ s0 + I 2 - w@ s1 + I w!
|
I 16 - @w I 7 - @w + I 15 - @w s0 + I 2 - @w s1 + I !w
|
||||||
LOOP
|
LOOP
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ DECIMAL
|
|||||||
: sh0 { x -- n } x 2 >>> x 13 >>> XOR x 22 >>> XOR ;
|
: sh0 { x -- n } x 2 >>> x 13 >>> XOR x 22 >>> XOR ;
|
||||||
: sh1 { x -- n } x 6 >>> x 11 >>> XOR x 25 >>> XOR ;
|
: sh1 { x -- n } x 6 >>> x 11 >>> XOR x 25 >>> XOR ;
|
||||||
: step { i }
|
: step { i }
|
||||||
h e sh1 + e f g ch + i k@ + i w@ L+ TO temp1
|
h e sh1 + e f g ch + i k@ + i @w L+ TO temp1
|
||||||
a sh0 a b c maj L+ TO temp2
|
a sh0 a b c maj L+ TO temp2
|
||||||
g TO h f TO g e TO f d temp1 L+ TO e
|
g TO h f TO g e TO f d temp1 L+ TO e
|
||||||
c TO d b TO c a TO b temp1 temp2 L+ TO a
|
c TO d b TO c a TO b temp1 temp2 L+ TO a
|
||||||
@ -80,8 +80,8 @@ create sha256-hash sha256-size allot
|
|||||||
msg edge >w
|
msg edge >w
|
||||||
edge 56 >= IF chunk w 64 ERASE THEN
|
edge 56 >= IF chunk w 64 ERASE THEN
|
||||||
THEN
|
THEN
|
||||||
n 8 * 16 RSHIFT 16 RSHIFT 14 w!
|
n 8 * 16 RSHIFT 16 RSHIFT 14 !w
|
||||||
n 8 * 15 w! chunk
|
n 8 * 15 !w chunk
|
||||||
format sha256-hash sha256-size
|
format sha256-hash sha256-size
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user