2
0
Эх сурвалжийг харах

Fixed invalid assignments (expressions like {x} always yield a SET which is not compatible to SET32 in 64-bit builds)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7753 8c9fc860-2736-0410-a75d-ab315db34111
eth.negelef 7 жил өмнө
parent
commit
0ad492ea42

+ 1 - 1
source/CryptoBigNumbers.Mod

@@ -287,7 +287,7 @@ VAR
 		END;
 		b.len := (bits + 31) DIV 32;
 		topbit := (bits - 1)  MOD 32;
-		topword := S.VAL( SET32, b.d[b.len - 1] ) * {0..topbit};
+		topword := SET32( S.VAL( SET32, b.d[b.len - 1] ) * {0..topbit} );
 		IF top > 0 THEN INCL( topword, topbit ) END;
 		b.d[b.len - 1] := S.VAL( LONGINT, topword );
 		IF (bottom > 0) & ~ODD( b.d[0] ) THEN  INC( b.d[0] )  END;

+ 2 - 2
source/CryptoKeccakF1600.Mod

@@ -78,9 +78,9 @@ TYPE
 			ASSERT( position < 1600 );
 			laneNo := position DIV 64;  bit := position MOD 64; 
 			IF bit < 32 THEN
-				state[laneNo].low := state[laneNo].low / {bit}
+				state[laneNo].low := SET32( state[laneNo].low / {bit} )
 			ELSE
-				state[laneNo].high := state[laneNo].high / {bit - 32};
+				state[laneNo].high := SET32( state[laneNo].high / {bit - 32} );
 			END
 		END ComplementBit;